IBM XL C/C ++ - Compiler: Compiler -Modus mithilfe der Präprozessoranweisung überprüfen
-
13-10-2019 - |
Frage
Ich versuche, eine Beispiel -C ++ - Datei zu kompilieren test.cpp
Verwenden von IBM XLC Compiler auf AIX -System. Die Datei sollte sowohl in 32-Bit- als auch in 64-Bit-Modi kompiliert werden. Ich verwende folgende Befehle, um sie in beiden Modi zu kompilieren:
xlC test.cpp
(Standard-Compiler-Modus ist 32-Bit)
xlC -q64 test.cpp
Unter test.cpp
, Ich muss printf("Using 32-bit compiler")
Wenn er für 32-Bit zusammenstellt und printf("Using 64-bit compiler")
Wenn er für 64-Bit zusammenstellt.
Wie kann ich dies mit Precessor Conditionals erreichen? Gibt es ein vordefiniertes Makro entweder für Compiler oder für die Maschinenarchitektur, die den Unterschied zeigt?
Lösung
In XLC, wenn Sie die verwenden -q64
Flagge, das Makro __64BIT__
ist definiert.
Direkt von Dokumentation von IBM XL C/C ++:
Wenn der Compiler im 64-Bit-Modus aufgerufen wird, wird der
__64BIT__
Präprozessor -Makro wird definiert.