如何在#ifdef中添加'or'条件?

我试过:

#ifdef CONDITION1 || CONDITION2

#endif

这行不通。


当前回答

我真的强迫症保持严格的列限制,而不是一个“\”的粉丝 行续,因为你不能在后面加注释,这是我的方法。

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#ifdef  CONDITION_01             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_02             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_03             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef              TEMP_MACRO   //|       |//
//|-  --  --  --  --  --  --  --  --  --  -|//

printf("[IF_CONDITION:(1|2|3)]\n");

//|-  --  --  --  --  --  --  --  --  --  -|//
#endif                           //|       |//
#undef              TEMP_MACRO   //|       |//
//|________________________________________|//

其他回答

检查:

    #if defined __WINDOWS__ && ( _MSC_VER >= 1700 )
        enum class FUTURES_DS_STAGE{
            ...
        };
    #else
        enum FUTURES_DS_STAGE{
        ...
        };
    #endif

我真的强迫症保持严格的列限制,而不是一个“\”的粉丝 行续,因为你不能在后面加注释,这是我的方法。

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#ifdef  CONDITION_01             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_02             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef  CONDITION_03             //|       |//
#define             TEMP_MACRO   //|       |//
#endif                           //|       |//
#ifdef              TEMP_MACRO   //|       |//
//|-  --  --  --  --  --  --  --  --  --  -|//

printf("[IF_CONDITION:(1|2|3)]\n");

//|-  --  --  --  --  --  --  --  --  --  -|//
#endif                           //|       |//
#undef              TEMP_MACRO   //|       |//
//|________________________________________|//

可以用这个

#if defined CONDITION1 || defined CONDITION2
//your code here
#endif

这个也有同样的作用

#if defined(CONDITION1) || defined(CONDITION2)
//your code here
#endif

进一步的,

AND: #if defined CONDITION1 && defined CONDITION2 XOR: #if defined CONDITION1 ^ defined CONDITION2 AND NOT: #if defined CONDITION1 &&

#if defined(CONDITION1) || defined(CONDITION2)

应该工作。:)

#ifdef稍微少了一点输入,但在更复杂的条件下不能很好地工作