如何添加'或'#ifdef中的条件

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

我试过:

#ifdef CONDITION1 || CONDITION2


#endif

这行不通。

155858 次浏览
#if defined(CONDITION1) || defined(CONDITION2)

应该工作。:)

#ifdef的类型稍微少一些,但在更复杂的条件下不能很好地工作

可以用这个

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

这个也有同样的作用

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

进一步的,

  • 和:#if defined CONDITION1 && defined CONDITION2
  • XOR: #if defined CONDITION1 ^ defined CONDITION2
  • 而不是:__abc0

我真的对维护严格的列限制有强迫症,而不是“\”的粉丝 因为你不能在它后面加注释,所以这是我的方法

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#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