SPRAB89A September 2011 – March 2014
Only the type va_list shows up in the interface. Macros are used to implement va_start, va_arg, and va_end. See Chapter 3 for the format of the arguments in va_list.
Upon a call to a variadic C function declared with an ellipsis (…), the last declared argument and any additional arguments are passed on the stack as described in Section 3.4 and accessed using the macros in <stdarg.h>. The macros use a persistent argument pointer initialized via an invocation of va_start and advanced via invocations of va_arg. The following conventions apply to implementation of these macros.