diff options
Diffstat (limited to 'manual/examples/add.c')
-rw-r--r-- | manual/examples/add.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/manual/examples/add.c b/manual/examples/add.c new file mode 100644 index 0000000..e4b1bba --- /dev/null +++ b/manual/examples/add.c @@ -0,0 +1,30 @@ +#include <stdarg.h> +#include <stdio.h> + +int +add_em_up (int count,...) +{ + va_list ap; + int i, sum; + + va_start (ap, count); /* Initialize the argument list. */ + + sum = 0; + for (i = 0; i < count; i++) + sum += va_arg (ap, int); /* Get the next argument value. */ + + va_end (ap); /* Clean up. */ + return sum; +} + +int +main (void) +{ + /* This call prints 16. */ + printf ("%d\n", add_em_up (3, 5, 5, 6)); + + /* This call prints 55. */ + printf ("%d\n", add_em_up (10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + + return 0; +} |