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

next slide