C · Avançado · Português · Técnico
macro variádica
Macro declarada com reticências nos parâmetros, que aceita quantidade variável de argumentos e os acessa por __VA_ARGS__. Disponível desde o C99.
Onde usar
Muito usada em macros de log que repassam argumentos ao printf. O caso de zero argumentos variáveis deixa uma vírgula sobrando; o C23 adiciona __VA_OPT__ para resolver.
Em código
#define LOG(...) \
fprintf(stderr, __VA_ARGS__)
LOG("valor=%d\n", 42);
LOG("fim\n");Exemplos
Escrevi uma macro variádica para o log repassar tudo ao fprintf.
A macro variádica acessa os argumentos extras por __VA_ARGS__.
Cuidado
Separar o formato de __VA_ARGS__, como em LOG(fmt, ...): sem argumentos extras sobra uma vírgula antes do C23.
Sinônimos
variadic macro