ExpertiDict

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

colagem de tokens

/koˈla.ʒẽj dʒi ˈto.kẽs/substantivo

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_double

Exemplos

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

Veja também

Todos os termos de C