tags:

views:

187

answers:

2

What does the # symbol mean when used as a variable prefix in a #define macro?

For example,

#define my_setopt(x,y,z) _my_setopt(x, 0, config, #y, y, z)
+7  A: 

It's the Stringizing Operator, which converts macro parameters to string literals.

So in your example:

my_setopt(1, 2, 3)

would expand to:

_my_setopt(1, 0, config, "2", 2, 3)
RichieHindle
+2  A: 

# quotes the expression. For example:

#define SHOW(BAR) printf("%s is %d\n", #BAR , BAR)
SHOW(3+5);  // prints: 3+5 is 8
sepp2k