Компилятор IBM XL C/C ++: Проверьте режим компилятора с помощью директивы препроцессора
-
13-10-2019 - |
Вопрос
Я пытаюсь собрать образец файла 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-битных.
Как я могу достичь этого, используя препроцессорные условия? Есть ли предварительно определенный макрос либо для компилятора, либо для архитектуры машины, который рассказывает разницу?
Решение
в XLC, если вы используете -q64
флаг, макрос __64BIT__
определено.
Прямо от Документация IBM XL C/C ++:
Если компилятор вызывается в 64-битном режиме, то
__64BIT__
Предварительный макрос определен.