如何在#ifdef 中添加“或”条件
Posted
技术标签:
【中文标题】如何在#ifdef 中添加“或”条件【英文标题】:How to add a 'or' condition in #ifdef 【发布时间】:2011-03-01 05:50:14 【问题描述】:如何在 #ifdef 中添加“或”条件?
我试过了:
#ifdef CONDITION1 || CONDITION2
#endif
这不起作用。
【问题讨论】:
【参考方案1】:#if defined(CONDITION1) || defined(CONDITION2)
应该可以。 :)
#ifdef
打字少了一点,但不适用于更复杂的条件
【讨论】:
@iEngineer#elif defined(CONDITION1) || defined(CONDITION2)
?
如何在多个条件下使用#ifndef?
@user3017748 #if !defined(CONDITION1) || !defined(CONDITION2)
@user3017748,如果您希望在两个条件中的一个未定义的情况下发生某些事情,那么 jalf 的评论就有效。如果您希望在两者都未定义的情况下发生这种情况,您可以使用 AND:#if !defined(CONDITION1) && !defined(CONDITION2)
。
这不需要#endif
吗?【参考方案2】:
可以用这个-
#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
【讨论】:
【参考方案3】:对于维护严格的列限制,我真的是强迫症,而不是“\”的粉丝 续行,因为你不能在它后面添加评论,所以这是我的方法。
//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#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 //| |//
//|________________________________________|//
【讨论】:
哦,真恶心……以上是关于如何在#ifdef 中添加“或”条件的主要内容,如果未能解决你的问题,请参考以下文章
如何根据基于数据框的两个或多个条件在 MultiIndex 数据框中添加新行