我正在尝试使用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")
。
如何使用预处理器条件实现此目的?是否存在用于编译器或机器架构的预定义宏来说明差异?
答案 0 :(得分:2)
在XLC中,如果您使用的是-q64
标记,则会定义宏__64BIT__
。
直接来自IBM XL C/C++'s documentation:
如果在64位模式下调用编译器,则会定义
__64BIT__
预处理器宏。