IBM XL C/C ++ - Compiler: Compiler -Modus mithilfe der Präprozessoranweisung überprüfen

StackOverflow https://stackoverflow.com/questions/4536896

  •  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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top