IBM XL C / C ++编译器:使用预处理器指令检查编译器模式

时间:2010-12-27 06:09:38

标签: c++ compiler-construction xlc

我正在尝试使用AIX系统上的IBM xlC编译器编译示例c ++文件test.cpp。该文件应该以32位和64位模式进行编译。我使用以下命令在两种模式下编译它们:

xlC test.cpp(默认编译器模式为32位)

xlC -q64 test.cpp

test.cpp下,如果编译为32位,则必须printf("Using 32-bit compiler"),如果编译为64位,则必须printf("Using 64-bit compiler")

如何使用预处理器条件实现此目的?是否存在用于编译器或机器架构的预定义宏来说明差异?

1 个答案:

答案 0 :(得分:2)

在XLC中,如果您使用的是-q64标记,则会定义宏__64BIT__

直接来自IBM XL C/C++'s documentation

  

如果在64位模式下调用编译器,则会定义__64BIT__预处理器宏。