#ifdef에 'or'조건을 추가하는 방법


166

#ifdef에 'or'조건을 추가하려면 어떻게해야합니까?

나는 시도했다 :

#ifdef CONDITION1 || CONDITION2

#endif

작동하지 않습니다.

답변:


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

작동해야합니다. :)

#ifdef 타이핑이 적지 만 더 복잡한 조건에서는 잘 작동하지 않습니다.


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

2
여러 조건으로 #ifndef를 사용하는 방법은 무엇입니까?
user3017748

18
@ user3017748 #if! defined (CONDITION1) || ! defined (CONDITION2)
jalf 2018 년

4
@ user3017748, jalf의 설명은 두 조건 중 하나 가 정의 되지 않은 경우 무언가를 원할 경우 작동합니다 . 둘 중 어느 것도 정의되지 않은 경우에 발생 하려면 AND :를 사용하십시오 #if !defined(CONDITION1) && !defined(CONDITION2).
cp.engr

1
이것이 필요하지 #endif않습니까?
Stevoisiak

18

이것을 사용할 수 있습니다

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

이것은 또한 같은

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

더욱이-

  • 과: #if defined CONDITION1 && defined CONDITION2
  • XOR : #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.