用引号定义C ++预处理器宏[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用引号定义C ++预处理器宏[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我试图在C ++中定义一个宏,它在一个变量周围加上引号。

我想要做的一个简化示例是:

#define PE(x) std::cout << "x" << std::endl;

然后当我在我的代码中键入PE(hello)时,它应该打印hello;但它只是打印x

我知道如果我做到了:

#define PE(x) std::cout << x << std::endl;

然后键入PE("hello")然后它会工作,但我希望能够使用它而不使用引号。

这可能吗?

答案

您可以使用字符串化运算符#

#define PE(x) std::cout << #x << std::endl;

不过,我建议您从宏中删除分号。所以,

#define PE(x) std::cout << #x << std::endl
...
PE(hello);

以上是关于用引号定义C ++预处理器宏[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用方括号而不是引号定义的供应商的预处理指令

怎么把C语言中定义的符号变量替换为对应的常量?求代码

怎样用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器?

C语言符号常量定义

C语言编程计算闰年

C语言_15自定义函数和math库函数详解篇!