Pregunta

He buscado en el sitio, pero no encontró la respuesta que estaba buscando así que aquí es una pregunta muy rápido.

Estoy tratando de hacer algo así:

#ifdef _WIN32 || _WIN64
     #include <conio.h>
#endif

¿Cómo puedo hacer una cosa así? Sé que _WIN32 se define para ambas ventanas 32 y 64 bits, así que estaría bien ya sea con ventanas para la detección. Estoy más interesado en saber si puedo usar operadores lógicos como que con las directivas de preprocesador, y si es así cómo, ya que el anterior no funciona.

La compilación con gcc me sale:

  

Advertencia: elementos extra al final del #ifdef Directiva, y, básicamente, sólo toma la primera macro e ignora el resto

.
¿Fue útil?

Solución

Probar:

#if defined(_WIN32) || defined(_WIN64)
// do stuff
#endif

El definido pruebas macro si es o no un nombre se define y se le permite aplicar operadores lógicos para el resultado.

Otros consejos

Debe utilizar #if y operador especial defined

Creo que debería ser posible de esta manera:

#if defined block1 || defined block2 /*or any other boolean operator*/
   /*Code*/
#endif

Más información aquí

El uso definido:

#if defined(A) || defined(B)
    #include <whatever.h>
#endif
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top