Je regarde une application qui définit un grand ensemble de tableaux constants. Ce qui me rend vraiment perplexe, c’est l’utilisation de signes de deux livres dans une macro. Par exemple:
#define r0(p,q,r,s) 0x##p##q##r##s
Que signifient ces signes de deux livres?
##
fournit un moyen de concaténer les arguments réels lors du développement de macros.
##
concattenate des symboles. Ainsi, par exemple, si la valeur de p
est ab
, 0x##p
deviendrait 0xab
.
Als et sepp2k donnent une réponse correcte.
Cependant, je voudrais append que cette macro semble être complètement inutile.
unsigned int value = r0(b,e,a,f);
peut être remplacé par meilleur et plus court:
unsigned int value = 0xbeaf;