C · Avançado · Português · Técnico
stringificação
Operador # dentro de uma macro com parâmetros, que transforma o argumento em um literal de string. Permite imprimir o texto exato da expressão passada.
Onde usar
Usado em macros de assert e de log para mostrar o código que falhou. O argumento não é expandido antes, a menos que se use uma macro intermediária.
Em código
#define MOSTRA(e) printf(#e " = %d\n", e)
int x = 6;
MOSTRA(x * 7); // imprime: x * 7 = 42Exemplos
O assert usa stringificação para imprimir a condição que falhou.
Com stringificação, a macro mostra o código e o valor da expressão.
Cuidado
Esperar que # mostre o valor de outra macro: sem uma macro auxiliar, ele usa o nome literal.
Sinônimos
operador #