【发布时间】:2016-03-21 09:03:08
【问题描述】:
我经常混淆是使用类对象宏还是类函数宏。我写过here。因此,如果类对象宏的替换列表可以是文字,也可以是文字列表。那么如果我们在标识符后面有一个表达式,我们应该使用类似函数的宏对吗?
#define FIRST 1 //object-like
#define INCREASE_A_AND_B() do{++a;++b;}while(0) //functuion-like
#define ORED (FIRST | 5) //func or object? ORED or ORED()?
如果有人能说明何时使用其中一种或另一种方式,将不胜感激。
【问题讨论】:
-
让符号更熟悉。
-
请解释否决票。
标签: c c-preprocessor