ในส่วนนี้เราจะมาดูวิธีการนับจำนวนอาร์กิวเมนต์ในกรณีตัวแปรจำนวนอาร์กิวเมนต์ในภาษาซี
C รองรับจุดไข่ปลา ใช้เพื่อนำจำนวนตัวแปรของอาร์กิวเมนต์มาใช้กับฟังก์ชัน ผู้ใช้สามารถนับอาร์กิวเมนต์โดยใช้หนึ่งในสามวิธีที่แตกต่างกัน
-
โดยส่งผ่านอาร์กิวเมนต์แรกเป็นจำนวนพารามิเตอร์
-
โดยส่งผ่านอาร์กิวเมนต์สุดท้ายเป็น NULL
-
ใช้ตรรกะเช่น printf() หรือ scanf() โดยที่อาร์กิวเมนต์แรกมีตัวยึดตำแหน่งสำหรับอาร์กิวเมนต์อื่น
ในโปรแกรมต่อไปนี้ เราจะทำจำนวนตัวแปรทั้งหมดของอาร์กิวเมนต์ที่ส่งผ่าน
โค้ดตัวอย่าง
#include<stdio.h> #include <stdarg.h> int get_avg(int count, ...) { va_list ap; int i; int sum = 0; va_start(ap, count); //va_start used to start before accessing arguments for(i = 0; i < count; i++) { sum += va_arg(ap, int); } va_end(ap); //va_end used after completing access of arguments return sum; } main() { printf("Total variable count is: %f", get_avg(5, 8, 5, 3, 4, 6)); }
ผลลัพธ์
Total variable count is: 5