为什么在C ++ VS2017中,字符串化不在宏外工作

时间:2018-03-17 01:20:15

标签: c++ macros

虽然在C ++ VS2017中强化宏参数,但我意识到它只适用于宏参数,而不是普通的宏:

#define PRINT(FOO) cout << #FOO; // OK
#define BAR blah
cout << #BAR;                    // error C2162

#BAR的上一行生成&#34;错误C2162:预期的宏形态参数。&#34;我知道我可以通过传递BAR作为宏参数来解决错误,但我想知道为什么不支持这个?如果有非参数方法可以让它发挥作用,我会感到惊讶,但如果有人有一个我全都耳朵。

0 个答案:

没有答案