繁体   English   中英

将宏函数定义为 (0) 是什么意思?

[英]what does it mean define macro function as (0)?

我在一些源代码中看到这种定义

#define somemacro(a,b,c) (0)

我在同一个源代码中看到:

#define anothermacro(a,b,c) (1)

任何机构都可以解释这种宏定义吗? 这种定义的目的是什么?

通常在以下情况下会出现宏等函数的未使用参数:

#ifdef A_IS_GREAT_ALWAYS
  #define anothermacro(a,b,c) (1)
#else
  #define anothermacro(a,b,c) ((a)>(b)+(c))
#endif

如果没有参数,当 A_IS_GREAT_ALWAYS 未定义时,它会在以下类型的地方破坏构建。

...
if (anothermacro(foo, bar, baz))
...

预编译器将示例代码翻译为:

  if ((1))

或者

  if (((foo)>(bar)+(baz)))

取决于是否定义了 A_IS_GREAT_ALWAYS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM