Skip to content

Instantly share code, notes, and snippets.

@gonzafernan
Created July 9, 2018 23:54
Show Gist options
  • Save gonzafernan/de4bef5301807bf3edee688406b55cb9 to your computer and use it in GitHub Desktop.
Save gonzafernan/de4bef5301807bf3edee688406b55cb9 to your computer and use it in GitHub Desktop.
Variadic function example
/*
EXAMPLE FROM THE GNU C LIBRARY
http://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html#Variadic-Example
*/
#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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment