/* Write zero or more strings */ #include < stdio.h> #include < stdarg.h> int va_sum(int count, ...); int main (void) { int a = 1, b = 2, c = 3; printf("sum 1 = %d\n", va_sum(2, a, b)); printf("sum 2 = %d\n", va_sum(3, a, b, c)); return 0; } /* first argument is number of numbers to be added; all other arguments are numbers to be added */ int va_sum(int count, ...) { int i, sum = 0; va_list ap; va_start(ap, count); for (i = 0; i < count; i++) { sum += va_arg(ap, int); } va_end(ap); return sum; }
If the above program is compiled and run, we get the output:
sum 1 = 3 sum 2 = 6