นับจำนวน Variadic Arguments ได้ 3 วิธี:
- ส่งจำนวนเป็น Argument แรก (เช่น printf format string)
- ใช้ Sentinel Value (เช่น NULL) เป็น Argument ตัวสุดท้าย
- ใช้ Format String แบบ printf/scanf
ตัวอย่าง: ส่ง Count เป็น Argument แรก
#include <stdio.h>
#include <stdarg.h>
int get_sum(int count, ...) {
va_list ap; va_start(ap, count);
int sum = 0;
for (int i = 0; i < count; i++) sum += va_arg(ap, int);
va_end(ap);
return sum;
}
int main() {
printf("Sum: %d", get_sum(5, 8,5,3,4,6)); // 5 arguments
}