如果定义了两个宏中的任何一个,我有一段代码要包含在内
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
我如何在 C 中实现这一点?
如果定义了两个宏中的任何一个,我有一段代码要包含在内
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
我如何在 C 中实现这一点?
此外#ifdef
,预处理器支持更通用的#if
指令;实际上,#ifdef MACRO
是 的快捷方式#if defined(MACRO)
,其中defined
是“预处理器函数”,如果定义了宏,则返回 1;所以,你可以这样做:
#if defined(MACRO1) || defined(MACRO2)
void foo()
{
}
#endif
#if defined(MACRO1) || defined(MACRO2)
如果需要,这里是 NOT 版本:
#if !defined(MACRO1) && !defined(MACRO2)
...
#endif
#if defined(Macro 1) + defined(Macro 2) == 1
<Code>
#endif