วิธีเพิ่มเงื่อนไข 'หรือ' ใน #ifdef


167

ฉันจะเพิ่มเงื่อนไข 'หรือ' ใน #ifdef ได้อย่างไร

ฉันเหนื่อย:

#ifdef CONDITION1 || CONDITION2

#endif

สิ่งนี้ใช้ไม่ได้

คำตอบ:


317
#if defined(CONDITION1) || defined(CONDITION2)

ควรทำงาน. :)

#ifdef พิมพ์น้อยลงเล็กน้อย แต่ใช้งานไม่ได้กับเงื่อนไขที่ซับซ้อนมากขึ้น


5
@iEngineer #elif defined(CONDITION1) || defined(CONDITION2)?
jalf

2
วิธีใช้ #ifndef ด้วยหลายเงื่อนไข
3017748

18
@ user3017748 #if! define (CONDITION1) || ! กำหนด (CONDITION2)
jalf

4
@ user3017748, jalf ของความคิดเห็นการทำงานถ้าคุณต้องการสิ่งที่จะเกิดขึ้นถ้าอย่างใดอย่างหนึ่งของทั้งสองเงื่อนไขที่ไม่ได้กำหนดไว้ หากคุณต้องการให้มันเกิดขึ้นถ้าไม่ใช่ของพวกเขาจะมีการกำหนด#if !defined(CONDITION1) && !defined(CONDITION2)ที่คุณต้องการใช้และ:
cp.engr

1
สิ่งนี้ไม่จำเป็น#endifหรือไม่?
Stevoisiak

19

อาจใช้สิ่งนี้ -

#if defined CONDITION1 || defined CONDITION2
//your code here
#endif

สิ่งนี้ก็ทำเช่นเดียวกัน -

#if defined(CONDITION1) || defined(CONDITION2)
//your code here
#endif

Further-

  • และ: #if defined CONDITION1 && defined CONDITION2
  • แฮคเกอร์: #if defined CONDITION1 ^ defined CONDITION2
  • และไม่: #if defined CONDITION1 && !defined CONDITION2

-1

ฉันเป็นโรค OCD จริง ๆ เกี่ยวกับการ จำกัด คอลัมน์ที่เข้มงวดและไม่ใช่แฟนของการต่อเนื่องของบรรทัด \ "\" เพราะคุณไม่สามารถใส่ความคิดเห็นหลังจากนั้นดังนั้นนี่คือวิธีการของฉัน

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#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   //|       |//
//|________________________________________|//
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.