我正在尝试在C ++中定义一个宏,该宏将引号放在变量周围。
我正在尝试做的一个简化示例是
#define PE(x) std::cout << "x" << std::endl;
,然后当我在代码中键入PE(hello)
时,它应该打印hello
;但它只会打印x
。
我知道,如果我成功了:
#define PE(x) std::cout << x << std::endl;
然后输入PE("hello")
即可使用,但我希望能够不带引号而使用它。
这可能吗?
答案 0 :(得分:1)
您可以使用字符串化运算符#
:
#define PE(x) std::cout << #x << std::endl;
不过,我建议您从宏中删除分号。因此,
#define PE(x) std::cout << #x << std::endl
...
PE(hello);