10

如果定义了两个宏中的任何一个,我有一段代码要包含在内

#ifdef MACRO1 || MACRO2

void foo()
{


}

#endif

我如何在 C 中实现这一点?

4

4 回答 4

17

此外#ifdef,预处理器支持更通用的#if指令;实际上,#ifdef MACRO是 的快捷方式#if defined(MACRO),其中defined是“预处理器函数”,如果定义了宏,则返回 1;所以,你可以这样做:

#if defined(MACRO1) || defined(MACRO2)

void foo()
{


}

#endif
于 2012-12-04T21:05:49.323 回答
5
#if defined(MACRO1) || defined(MACRO2)
于 2012-12-04T21:04:24.043 回答
4

如果需要,这里是 NOT 版本:

#if !defined(MACRO1) && !defined(MACRO2)
...
#endif
于 2014-12-16T12:27:32.193 回答
0
  #if defined(Macro 1) + defined(Macro 2) == 1
  <Code>
  #endif  
于 2012-12-04T21:07:37.637 回答