Que signifie le symbole # lorsqu'il est utilisé comme préfixe de variable dans une macro #define?étrange macro syntaxe C (#var)
Par exemple,
#define my_setopt(x,y,z) _my_setopt(x, 0, config, #y, y, z)
Que signifie le symbole # lorsqu'il est utilisé comme préfixe de variable dans une macro #define?étrange macro syntaxe C (#var)
Par exemple,
#define my_setopt(x,y,z) _my_setopt(x, 0, config, #y, y, z)
Il est le Stringizing Operator, qui convertit les paramètres macro littéraux de chaîne.
Donc, dans votre exemple:
my_setopt(1, 2, 3)
élargirait à:
_my_setopt(1, 0, config, "2", 2, 3)
#
cite l'expression. Par exemple:
#define SHOW(BAR) printf("%s is %d\n", #BAR , BAR)
SHOW(3+5); // prints: 3+5 is 8