零参数的宏 - 带括号或不带括号

时间:2011-09-25 20:00:10

标签: c-preprocessor

当定义具有零参数的宏时,我们可以用括号定义它,因此看起来更像是函数或没有括号。

什么是可取的(可能没有正确的答案)方式呢?

3 个答案:

答案 0 :(得分:3)

如果您打算创建一个模仿函数的宏,请使用()版本。否则不要。

答案 1 :(得分:3)

作为一般规则,我希望MACRO()生成可执行代码,这可能会产生副作用。我使用MACRO(没有括号)来获得产生声明,样板或常量的更多结构性东西。

答案 2 :(得分:1)

Yes, we can我并不认为为什么一个比另一个更好有任何特殊的技术原因。但是,通常我们会省略()不需要的地方。