C preprocesador prueba definedness de varias macros
-
12-09-2019 - |
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
.
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.