Frage

ich die Seite gesucht, aber nicht finden die Antwort, die ich suchte, so ist hier eine wirklich kurze Frage.

Ich versuche, so etwas zu tun:

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

Wie kann ich so etwas tun? Ich weiß, dass _WIN32 für 32 und 64-Bit-Windows ist so definiert, ich entweder für Fenster Erkennung in Ordnung wäre. Ich bin mehr daran interessiert, ob ich logische Operatoren wie das mit Präprozessordirektiven verwenden kann, und wenn ja, wie, da die oben nicht funktioniert.

Kompilieren mit gcc erhalte ich:

  

Warnung: zusätzliche Token am Ende der #ifdef Richtlinie, und es ist im Grunde nehmen nur die erste MACRO und ignorieren den Rest

.
War es hilfreich?

Lösung

Versuchen:

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

Die Makro-Tests definiert, ob ein Name definiert ist, und läßt Dich gilt logische Operatoren auf das Ergebnis.

Andere Tipps

Sie müssen #if und spezielle Operator defined

Ich denke, es möglich sein soll, auf diese Weise:

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

Weitere Informationen hier

Die Nutzung definiert:

#if defined(A) || defined(B)
    #include <whatever.h>
#endif
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top