ExpertiDict

C · Avançado · Português · Técnico

macro variádica

/ˈma.kɾu vaɾiˈa.dʒi.kɐ/substantivo

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

Veja também

Todos os termos de C