Cómo agregar una condición 'o' en #ifdef

166

¿Cómo puedo agregar una condición 'o' en #ifdef?

Yo he tratado:

#ifdef CONDITION1 || CONDITION2

#endif

Esto no funciona.

Miguel
fuente

Respuestas:

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

Deberia trabajar. :)

#ifdef es un poco menos tipeado, pero no funciona bien con condiciones más complejas

jalf
fuente
55
@iEngineer #elif defined(CONDITION1) || defined(CONDITION2)?
jalf
2
¿Cómo usar #ifndef con múltiples condiciones?
user3017748
18
@ user3017748 #if! definido (CONDICIÓN1) || ! definido (CONDICIÓN2)
jalf
44
@ user3017748, el comentario de jalf funciona si desea que algo suceda si alguna de las dos condiciones no está definida. Si desea que suceda si se definen ninguno de ellos , tendrá que utilizar una Y: #if !defined(CONDITION1) && !defined(CONDITION2).
cp.engr
1
¿Esto no necesita un #endif?
Stevoisiak
18

Puede usar esto

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

Esto también hace lo mismo

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

Más lejos-

  • Y: #if defined CONDITION1 && defined CONDITION2
  • XOR: #if defined CONDITION1 ^ defined CONDITION2
  • Y NO: #if defined CONDITION1 && !defined CONDITION2
Minhas Kamal
fuente
-1

Realmente estoy en el TOC sobre el mantenimiento de límites estrictos de columna , y no soy fanático de la continuación de línea "\" porque no puedes poner un comentario después, así que aquí está mi método.

//|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|//
#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   //|       |//
//|________________________________________|//
JMI MADISON
fuente