/* 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