IBM XL C / C ++: mode de contrôle du compilateur en utilisant la directive de préprocesseur
-
13-10-2019 - |
Question
Je suis en train de compiler un échantillon c ++ fichier test.cpp
en utilisant le compilateur IBM xlC sur le système AIX. Le fichier doit être compilé dans les deux modes 32 bits et 64 bits. J'utilise les commandes suivantes pour les compiler dans les deux modes:
xlC test.cpp
(mode de compilateur par défaut est 32 bits)
xlC -q64 test.cpp
Sous test.cpp
, je dois printf("Using 32-bit compiler")
si la compilation pour
printf("Using 64-bit compiler")
si la compilation 64 bits.
Comment puis-je obtenir cela en utilisant conditionals préprocesseur? Y at-il une macro pré-définie soit pour le compilateur ou pour l'architecture de la machine qui indique la différence?
La solution
XLC, si vous utilisez le drapeau -q64
, est définie la __64BIT__
macro.
Droit IBM XL C / C ++ documentation ':
Si le compilateur est invoqué en mode 64 bits, la macro préprocesseur
__64BIT__
est défini.