#include <stdarg.h>
void va_start(va_list args, param);
type va_arg(va_list args, type);
void va_end(va_list args);
These macros can be used to get the parameters in an open parameter list. Calls to va_arg() get a parameter of the given type. The following example demonstrates the use of va_arg():
void my_func(char *s, ...) {
va_list args;
int i;
char *q;
va_start(args, s);
/* First call to 'va_arg' gets the first arg. */
i = va_arg (args, int);
/* Second call gets the second argument. */
q = va_arg(args, char *);
...
va_end (args);
}