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

问题描述 投票:0回答:1

我正在尝试在 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")

如何使用预处理器条件来实现此目的?是否有一个针对编译器或机器架构的预定义宏可以区分?

c++ preprocessor-directive xlc
1个回答
2
投票

在 XLC 中,如果您使用

-q64
标志,则会定义宏
__64BIT__

直接来自 IBM XL C/C++ 文档

如果在 64 位模式下调用编译器,则定义

__64BIT__
预处理器宏。

© www.soinside.com 2019 - 2024. All rights reserved.