IBM XL C / C ++ Compiler: modalità compilatore verifica con direttiva del preprocessore
-
13-10-2019 - |
Domanda
Sto cercando di compilare un test.cpp
file di esempio C ++ utilizzando IBM XLC compilatore sul sistema AIX. Il file deve essere compilato in entrambe le modalità a 32-bit e 64-bit. Sto usando i seguenti comandi per compilare loro in entrambi i modi:
xlC test.cpp
(modalità compilatore di default è a 32 bit)
xlC -q64 test.cpp
Sotto test.cpp
, devo printf("Using 32-bit compiler")
se compilazione per 32-bit e printf("Using 64-bit compiler")
se la compilazione a 64 bit.
Come posso ottenere questo utilizzando condizionali preprocessore? C'è un pre-definito macro sia per compilatore o per architettura della macchina che racconta la differenza?
Soluzione
in XLC, se si utilizza il flag -q64
, viene definita la __64BIT__
macro.
Direttamente dal IBM XL C / C ++ 's documentazione :
Se il compilatore viene richiamato in modalità a 64 bit, è definita la macro
__64BIT__
preprocessore.