No lo entiendo, operador del preprocesador de C

Código:

#include <stdio.h>

#define tokenpaster(n) printf ("token" #n " = %d", token##n)

int main(void)
{
    
    
   int token34 = 40;
   
   tokenpaster(34);
   return 0;
}

Resultado de la compilación:
token34 =40

Operador de pegado de etiquetas (##) El operador de pegado de etiquetas (##) en la
definición de macro combina dos parámetros. Permite que dos etiquetas independientes se fusionen en una etiqueta en la definición de macro.
¿Cómo sucede esto? Porque este ejemplo producirá la siguiente salida real del compilador:

printf ("token34 = %d", token34);
Este ejemplo demuestra que el token ## n se conectará al token 34. Aquí, usamos el operador de constanteización de cadena (#) y el operador de pegado de token (##).

No entiendo
https://www.runoob.com/cprogramming/c-preprocessors.html

Supongo que te gusta

Origin blog.csdn.net/weixin_42417585/article/details/105185902
Recomendado
Clasificación