IBM XL C / C ++ Compiler: проверьте режим компилятора с помощью директивы препроцессора - PullRequest
1 голос
/ 27 декабря 2010

Я пытаюсь скомпилировать образец файла 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-битной.

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

1 Ответ

2 голосов
/ 27 декабря 2010

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

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

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

...