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

发布于 2024-10-09 10:19:34 字数 384 浏览 1 评论 0原文

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

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

xlC -q64 test.cpp

test 下.cpp,如果编译 32 位,我必须 printf(“使用 32 位编译器”)printf(“使用 64 位编译器”) 如果编译为 64 位。

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

I am trying to compile a sample c++ file test.cpp using IBM xlC compiler on AIX system. The file should be compiled in both 32-bit and 64-bit modes. I am using following commands to compile them in both modes:

xlC test.cpp (default compiler mode is 32-bit)

xlC -q64 test.cpp

Under test.cpp, I have to printf("Using 32-bit compiler") if compiling for 32-bit and printf("Using 64-bit compiler") if compiling for 64-bit.

How can I achieve this using preprocessor conditionals? Is there a pre-defined macro either for compiler or for machine architecture that tells the difference?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

再见回来 2024-10-16 10:19:34

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

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

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

in XLC, if you are using the -q64 flag, the macro __64BIT__ is defined.

Straight from IBM XL C/C++'s documentation:

If the compiler is invoked in 64-bit mode, the __64BIT__ preprocessor macro is defined.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文