我尝试使用#ifndef,如下所示。
#ifndef MACRO1 || #ifndef MACRO2
....
#endif
我已经尝试过:
#ifndef (MACRO1 || MACRO2)
..
#endif
但对于这两种情况我都低于错误
错误:#ifndef指令结束时的额外令牌
答案 0 :(得分:3)
改为使用#if
预处理程序指令:
#if !defined(MACRO1) || !defined(MACRO2)
答案 1 :(得分:1)
您可以使用以下代码
#if !defined(MACRO1) || !defined(MACRO2)
#endif
您可以使用#if指令中定义的运算符来使用 在预处理器行中计算为0或1的表达式。
答案 2 :(得分:1)
#ifdef
和#ifndef
是#if defined(...)
和#if !defined(...)
的特殊缩写。但是,它们只能用于单个宏,不允许进行逻辑操作。因此,如果要检查多个宏,请使用#if
代替defined()
运算符。作为常规操作符,这可以与逻辑操作组合,就像!defined()
已经完成的那样。
答案 3 :(得分:0)
您可以在预处理程序指令中使用逻辑运算符,但为了检查已定义的内容,请使用defined
指令:
#if !defined MACRO1 || !defined MACRO2
....
#endif