Je ne comprends pas, opérateur du préprocesseur C

Code:

#include <stdio.h>

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

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

Résultat de la compilation:
token34 =40

Opérateur de collage de balise (##) L'opérateur de collage de balise (##) dans la
définition de macro combine deux paramètres. Il permet de fusionner deux balises indépendantes en une seule balise dans la définition de macro.
Comment cela se produit, car cet exemple produira la sortie réelle suivante du compilateur:

printf ("token34 = %d", token34);
Cet exemple montre que le jeton ## n sera connecté au jeton34. Ici, nous utilisons l'opérateur de constance de chaîne (#) et l'opérateur de collage de jeton (##).

Je ne comprends pas
https://www.runoob.com/cprogramming/c-preprocessors.html

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42417585/article/details/105185902
conseillé
Classement