这个问题已经有了答案:
我试图定义一个C++中的宏,它把引号放在变量周围。
我要做的一个简单的例子是:
#define PE(x) std::cout << "x" << std::endl;
然后当我打字的时候 PE(hello) 在我的代码中,它应该打印 hello 但是它只是打印出来的 x .
PE(hello)
hello
x
我知道如果我做到了:
#define PE(x) std::cout << x << std::endl;
然后类型 PE("hello") 然后它会工作,但我想能够使用它没有引号。
PE("hello")
这有可能吗?
可以使用字符串化操作符, # :
#
#define PE(x) std::cout << #x << std::endl;
不过,我建议您从宏中删除分号。所以,
#define PE(x) std::cout << #x << std::endl ... PE(hello);