Bonjour,
j'aimerais comprendre le sens de la macro suivante :
Ca a l'air d'etre utilisé sur des champs de structure.Code:
1
2
3 #define MY_BIT_NBR(structName, memberName) \ structName ## _ ## memberName ## Descr
Version imprimable
Bonjour,
j'aimerais comprendre le sens de la macro suivante :
Ca a l'air d'etre utilisé sur des champs de structure.Code:
1
2
3 #define MY_BIT_NBR(structName, memberName) \ structName ## _ ## memberName ## Descr
Si tu regardes dans le code tu trouveras surement une ligne utilisant cette macro, par exemple:
La définition de la macro, remplace ce bout de code par:Code:
1
2 MY_BIT_NBR(Bob,Marley)
JcCode:
1
2 Bob_MarleyDescr
L'opérateur du préprocesseur ## permet de concaténer plusieurs arguments effectifs au moment de la pré-compilation:
l'appel coller(nom, 10) crée le lexème nom10 (Kernighan and Ritchie, 1997) au moment de la pré-compilation.Code:#define coller(debut, fin) debut ## fin
Réf.
Kernighan, BW and Ritchie DM (1997). Le langage C: Norme ANSI. 2ème édition, Masson/Prentice Hall