我在某些源代码中看到了这种定义
#define somemacro(a,b,c) (0)
我看到的是相同的源代码:
#define anothermacro(a,b,c) (1)
任何机构都可以解释这种宏定义吗?这样定义的目的是什么?
答案 0 :(得分:2)
在以下情况下,通常会出现诸如宏之类的函数的未使用参数:
error
如果没有定义A_IS_GREAT_ALWAYS,则没有参数将在以下类型的位置中断构建。
err
预编译器将示例代码转换为:
#ifdef A_IS_GREAT_ALWAYS
#define anothermacro(a,b,c) (1)
#else
#define anothermacro(a,b,c) ((a)>(b)+(c))
#endif
或
...
if (anothermacro(foo, bar, baz))
...
取决于是否定义了A_IS_GREAT_ALWAYS。