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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将宏函数定义为是什么意思?相关的知识,希望对你有一定的参考价值。

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

#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。

以上是关于将宏函数定义为是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中宏定义是啥意思?

在这个 spark 代码片段中 ordering.by 是啥意思?

将宏传递给 nmake

VSCode自定义代码片段——声明函数

有人知道下面的代码片段是啥意思吗?

VSCode自定义代码片段8——声明函数