IBM XL C / C ++: mode de contrôle du compilateur en utilisant la directive de préprocesseur

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

  •  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

32 bits et 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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top