Wiki Markup |
---|
The variable parameters of a variadic function, this is, those that correspond with the position of the ellipsis, are interpreted by the {{va_arg()}} macro. The {{va_arg()}} macro is used to extract the next argument from an initialized argument list within the body of a variadic function implementation. The size of each parameter is determined by the specified type. If the type is inconsistent with the corresponding argument, the behavior is [undefined|BB. Definitions#undefined behavior] and may result in misinterpreted data or an alignment error \[[EXP36-C. Do not convert betweenpointers pointersinto tomore objectsstrictly withaligned differingpointer alignmentstypes]\]. |
The variable arguments to a variadic function are not checked for type by the compiler. Therefore, the programmer is responsible for ensuring that they are compatible with the corresponding parameter after the default argument promotions:
...