void va_start(va_list ap,

va_start initializes ap for subsequent use by the va_arg and va_end macros.

The parameter parmN is the identifier of the last fixed parameter in the variable parameter list in the function definition (the one just before the ', ...').

The behaviour of va_start and va_arg is undefined if the parameter parmN is declared with the register storage class, with a function or array type, or with a type that is not compatible with the type that results after application of the default argument promotions.

va_start must be invoked before any access to the unnamed arguments.

va_start and va_copy must not be invoked to reinitialize ap without an intervening invocation of the va_end macro for the same ap.