【发布时间】:2011-03-01 05:50:14
【问题描述】:
如何在 #ifdef 中添加“或”条件?
我试过了:
#ifdef CONDITION1 || CONDITION2
#endif
这不起作用。
【问题讨论】:
标签: c++ c c-preprocessor
如何在 #ifdef 中添加“或”条件?
我试过了:
#ifdef CONDITION1 || CONDITION2
#endif
这不起作用。
【问题讨论】:
标签: c++ c c-preprocessor
#if defined(CONDITION1) || defined(CONDITION2)
应该可以。 :)
#ifdef 打字少了一点,但不适用于更复杂的条件
【讨论】:
#elif defined(CONDITION1) || defined(CONDITION2)?
#if !defined(CONDITION1) && !defined(CONDITION2)。
#endif吗?
可以用这个-
#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
#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 //| |//
//|________________________________________|//
【讨论】: