C · Avançado · Português · Técnico
colagem de tokens
Operador ## que, dentro de uma macro, une dois tokens em um só antes de o resultado ser analisado. Permite gerar nomes de funções ou variáveis por padrão.
Onde usar
Usada para criar famílias de funções, como lista_int e lista_float, a partir de um único modelo de macro. É a coisa mais próxima de templates em C.
Em código
#define GETTER(t) \
t pega_##t(t *p) { return *p; }
GETTER(int) // define pega_int
GETTER(double) // define pega_doubleExemplos
Gero as funções pega_int e pega_double com colagem de tokens.
A colagem de tokens monta o nome da função a partir do tipo.
Cuidado
Esquecer que a colagem acontece antes da expansão dos argumentos; para colar o valor de outra macro é preciso uma macro auxiliar.
Sinônimos
operador ##, token pasting