va_list

From cppreference.com
< clrm; | variadic
/* unspecified */ va_list;

va_list is a complete object type suitable for holding the information needed by the macros va_start, va_copy, va_arg, and va_end.

If a va_list instance is created, passed to another function, and used via va_arg in that function, then any subsequent use in the calling function should be preceded by a call to va_end.

It is legal to pass a pointer to a va_list object to another function and then use that object after the function returns.

References

  • C11 standard (ISO/IEC 9899:2011):
  • 7.16/3 Variable arguments <stdarg.h> (p: 269)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.15/3 Variable arguments <stdarg.h> (p: 249)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.8 VARIABLE ARGUMENTS <stdarg.h>

See also

accesses the next variadic function argument
(function macro)
makes a copy of the variadic function arguments
(function macro)
ends traversal of the variadic function arguments
(function macro)
enables access to variadic function arguments
(function macro)