如何在#ifdef中添加'or'条件?
我试过:
#ifdef CONDITION1 || CONDITION2 #endif
这行不通。
#if defined(CONDITION1) || defined(CONDITION2)
应该工作。:)
#ifdef的类型稍微少一些,但在更复杂的条件下不能很好地工作
#ifdef
可以用这个
#if defined CONDITION1 || defined CONDITION2 //your code here #endif
这个也有同样的作用
#if defined(CONDITION1) || defined(CONDITION2) //your code here #endif
进一步的,
#if defined CONDITION1 && defined CONDITION2
#if defined CONDITION1 ^ defined CONDITION2
我真的对维护严格的列限制有强迫症,而不是“\”的粉丝 因为你不能在它后面加注释,所以这是我的方法
//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|// #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