【问题标题】:How to add a 'or' condition in #ifdef如何在#ifdef 中添加“或”条件
【发布时间】:2011-03-01 05:50:14
【问题描述】:

如何在 #ifdef 中添加“或”条件?

我试过了:

#ifdef CONDITION1 || CONDITION2

#endif

这不起作用。

【问题讨论】:

    标签: c++ c c-preprocessor


    【解决方案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   //|       |//
      //|________________________________________|//
      

      【讨论】:

      • 哦,真恶心……
      猜你喜欢
      • 2017-12-16
      • 1970-01-01
      • 2012-01-05
      • 2013-07-22
      • 2012-09-22
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多