A mon humble avis, je trouve le symbole # de concaténation des macros pas très heureux.
J’aurais plutôt vu des accolades pour encadrer le signé à changer.
Les accolades ne serviraient que pour lever l’ambiguïté en obligeant le compilateur à remplacer le signé par la macro si elle existe (un peu à l'image des shells Linux)
Car en effet, dans la doc on trouve les exemples suivantes :
Type#Case
Guillemet#Expression#Guillemet
Il est difficile de lire correctement ce qui est demandé (sauf pour le compilo), car :
- Case n’est pas une constante ni une macro
- Guillemet est une macro
- C’est Type et Expression que l’on veut concaténer
Avec les accolades, cela donnerait :
{Type}Case
Guillemet{Expression}Guillemet
On comprend alors facilement ce que l’on souhaite faire.
Bien sur on pourrait aussi écrire ceci :
{Guillemet}{Expression}{Guillemet}