1234567891011121314151617181920212223242526272829303132 |
- //varargs.c -- use variable number of arguments
- #include <stdio.h>
- #include <stdarg.h>
- double sum(int, ...);
- int main(void)
- {
- double s,t;
-
- s = sum(3, 1.1, 2.5, 13.3);
- t = sum(6, 1.1, 2.1, 13.1, 4.1, 5.1, 6.1);
- printf("return value for "
- "sum(3, 1.1, 2.5, 13.3): %g\n", s);
- printf("return value for "
- "sum(6, 1.1, 2.1, 13.1, 4.1, 5.1, 6.1): %g\n", t);
-
- return 0;
- }
- double sum(int lim,...)
- {
- va_list ap; // declare object to hold arguments
- double tot = 0;
- int i;
-
- va_start(ap, lim); // initialize ap to argument list
- for (i = 0; i < lim; i++)
- tot += va_arg(ap, double); // access each item in argument list
- va_end(ap); // clean up
-
- return tot;
- }
|