{{keywords>wiki library source code example reference}}
void va_start(va_list ap, argN);
=== description ===
The va_start() macro initializes ap for subsequent use by va_arg() and
va_end(), and must be called first.
The argument last is the name of the last argument before the variable
argument list, that is, the last argument of which the calling function knows
the type.
Because the address of this argument may be used in the va_start() macro, it
should not be declared as a register variable, or as a function or an array
type.
The [[c:stdarg.h:va_start|va_start()]], [[c:stdarg.h:va_arg|va_arg()]], and [[c:stdarg.h:va_end|va_end()]] macros conform to C89. C99 defines the
[[c:stdarg.h:va_copy|va_copy()]] macro.