3
在#define宏中用作變量前綴時,#符號的含義是什麼?奇怪的C宏語法(#var)
例如,
#define my_setopt(x,y,z) _my_setopt(x, 0, config, #y, y, z)
在#define宏中用作變量前綴時,#符號的含義是什麼?奇怪的C宏語法(#var)
例如,
#define my_setopt(x,y,z) _my_setopt(x, 0, config, #y, y, z)
這是Stringizing Operator,其宏參數轉換爲字符串文字。
所以在你的例子:
my_setopt(1, 2, 3)
將擴展爲:
_my_setopt(1, 0, config, "2", 2, 3)
#
報價的表達。例如:
#define SHOW(BAR) printf("%s is %d\n", #BAR , BAR)
SHOW(3+5); // prints: 3+5 is 8