Компилятор IBM XL C/C++: проверьте режим компиляции с помощью директивы препроцессора

Я пытаюсь скомпилировать пример файла C++ test.cpp с помощью компилятора IBM xlC в системе AIX. Файл должен быть скомпилирован как в 32-битном, так и в 64-битном режимах. Я использую следующие команды для их компиляции в обоих режимах:

xlC test.cpp (режим компилятора по умолчанию — 32-битный)

xlC -q64 test.cpp

Под test.cpp я должен printf("Using 32-bit compiler") при компиляции для 32-битной версии и printf("Using 64-bit compiler") при компиляции для 64-битной.

Как я могу добиться этого, используя условные обозначения препроцессора? Есть ли предопределенный макрос либо для компилятора, либо для архитектуры машины, который говорит о разнице?


person Jatin Sanghvi    schedule 27.12.2010    source источник


Ответы (1)


в XLC, если вы используете флаг -q64, макрос __64BIT__ определен.

Прямо из документация IBM XL C/C++:

Если компилятор вызывается в 64-битном режиме, определяется макрос препроцессора __64BIT__.

person wkl    schedule 27.12.2010
comment
Большое спасибо. __64BIT__ определяется моим компилятором. - person Jatin Sanghvi; 27.12.2010