Variadic macro
A variadic macro is a function-like C preprocessor macro whose parameter list accepts a variable number of arguments through an ellipsis.
Modern C
A variadic macro is a C function-like macro whose parameter list accepts a variable number of arguments through an ellipsis.
- How it is used
- Uses variadic macros to build trace interfaces accepting a variable number of values.
- How deep it goes
- Works through argument forwarding, empty-list handling, stringification, counting, and array conversion; distinguishes these from variadic-function argument handling.
- Examples
- Builds tracing macros that print formatted values, accept messages without values, stringify expressions, and pass counted values through an array.
- What you can do after
- Build it from scratch: write a variadic trace macro and adapt it to handle calls with or without values.
Modern C, Third Edition
A variadic macro is a function-like C preprocessor macro that accepts a variable number of arguments through an ellipsis parameter.
- How it is used
- Uses variadic macros to build tracing and formatted-output interfaces with a variable number of arguments.
- How deep it goes
- Explains declaration syntax, expansion, empty-list handling, stringification, and token-pasting dispatch, while deferring complete implementation details.
- Examples
- Demonstrates TRACE_PRINT6, TRACE_PRINT8, formatted output, __VA_ARGS__ stringification, and fprintf dispatch macros.
- What you can do after
- Build it from scratch using ellipsis parameters, __VA_ARGS__, __VA_OPT__, stringification, and token pasting while avoiding empty-call errors.
Related concepts
- __VA_ARGS__uses · __VA_ARGS__ is the predefined C preprocessor identifier that expands to arguments supplied for a variadic macro’s ellipsis parameter.
- variadic argumentsalternative to · A variadic function or parameter accepts a variable number of arguments, often collecting the supplied values into a sequence of a specified type.
- function-like macrokind of · A function-like macro is a macro invoked with function-like syntax that accepts token input and expands or transforms it into generated source.
- __VA_OPT__uses · __VA_OPT__ is a C23 preprocessor feature that conditionally includes replacement tokens when a variadic macro receives one or more variable arguments.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

