6.14 <stdarg.h> Variable Argument Lists

The header file stdarg.h supports functions with variable argument lists.

Variable argument lists allow functions to have an arbitrary number of arguments without corresponding parameter declarations, thus, the number and type of these arguments can differ on each call to the function.

A function with a variable argument list must have at least one named argument. The arguments in the argument list are represented by an ellipsis, .... To read the argument list, an object of type va_list must be declared inside the function to hold information about the argument list. The va_start macro is used to initialize the va_list object so that the argument values can be obtained, the va_arg macro will access the next argument in the list, and the va_end macro ensures that the function is in a state whereby it can successfully return after all the required arguments have been read.