如何在#ifdef中添加'or'条件?
我试过:
#ifdef CONDITION1 || CONDITION2
#endif
这行不通。
如何在#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稍微少了一点输入,但在更复杂的条件下不能很好地工作