带有没有括号的变量的C ++宏

时间:2014-12-19 00:25:50

标签: c++ macros c-preprocessor

在C ++中,人们可以做类似

的事情
#define my_happy_macro(x) do_something_with(x)

或者

#define $(x) do_something_with(x)

然而,我想做的是

#define $x do_something_with(x)

所以当我写

$x;

在我的代码中,预处理器将其替换为

do_something_with(x);

是否可以做这样的事情?

1 个答案:

答案 0 :(得分:2)

这不是预处理器可以管理的东西。

作为其他人所说的补充,最好避免大量使用宏,除非你真的知道你要对它们做什么,并且有充分的理由不简单地为这项工作创建一个函数。