C · Avançado · Português · Técnico
macro X
Técnica em que uma lista de itens é definida uma vez como chamadas de uma macro, redefinida para gerar enum, nomes, tabelas e outras estruturas sempre sincronizadas.
Onde usar
Evita que a lista de estados e seus nomes divirjam quando alguém adiciona um item. É comum em emuladores, parsers e firmwares.
Em código
#define CORES X(VERM) X(VERDE) X(AZUL)
#define X(n) n,
enum { CORES N_CORES };
#undef X
#define X(n) #n,
const char *nomes[] = { CORES };Exemplos
Usei uma macro X para gerar o enum e o array de nomes juntos.
Com a macro X, adicionar um estado é mexer em um só lugar.
Cuidado
Usar sem documentar: a leitura é difícil para quem não conhece o idioma.
Sinônimos
X macro