cstdarg (stdarg.h)


Variable arguments handling

This header defines macros to access the individual arguments of a list of unnamed arguments whose number and types are not known to the called function.

A function may accept a varying number of additional arguments without corresponding parameter declarations by including a comma and three dots (,...) after its regular named parameters:

return_type function_name ( parameter_declarations , ... );

To access these additional arguments the macros va_start, va_arg and va_end, declared in this header, can be used:
  • First, va_start initializes the list of variable arguments as a va_list.
  • Subsequent executions of va_arg yield the values of the additional arguments in the same order as passed to the function.
  • Finally, va_end shall be executed before the function returns.

The header, describes one type:

And three functions:

Some implementations of C compilers (such as ISO C99-compliant compilers) also include a va_copy macro to duplicate a va_list object, but this is not part of ISO C++ standard.