用于标识 XL C/C++ 编译器的宏
与 XL C/C++ 编译器相关的大多数宏都是预定义且受保护的,这意味着如果您尝试取消定义或重新定义它们,那么编译器将发出警告。 您可以使用这些宏来区分 XL C/C++ 使用的代码与程序中其他编译器使用的代码。
IBM® XL C/C++ for AIX® 16.1中提供了两类调用命令。 有关详细信息,请参阅 调用编译器。 这两类调用命令具有不同的预定义宏:
您可以使用 -qshowmacros=pre -E 编译器选项查看预定义宏的值。
您可以在空源文件中使用 -qshowmacros -E 查看预定义宏的值。
预定义宏名称 | 描述 | 预定义值 |
---|---|---|
![]() |
指示 XL C 编译器的级别。 | 格式为 VRM的整数,其中:
|
![]() |
指示 XL C++ 编译器的级别。 | 格式为 VRM的整数,其中:
|
![]() |
指示 XL C 编译器的级别。 | 格式为 V.R.M.F 的字符串,其中:
|
__xlC__ | 以十六进制格式指示 XL C 和 XL C++ 编译器的 VR 级别。 | 格式为 0xVVRR 的 4 位十六进制整数,其中:
|
__xlC_ver__ | 以十六进制格式指示 XL C 和 XL C++ 编译器的 MF 级别。 | 格式为 0x0000MMFF 的 8 位十六进制整数,其中:
例如,在 PTF 3 中,宏的值为 0x00000003。 |
预定义宏名称 | 描述 | 预定义值 |
---|---|---|
__ibmxl__ | 指示正在使用 XL C/C++ 编译器。 | 1 |
__ibmxl_vrm__ | 指示使用单个整数进行排序的 XL C/C++ 编译器的 VRM 级别。 | 十六进制整数,其值如下所示:
|
__ibmxl_version__ | 指示 XL C/C++ 编译器的版本号。 | 表示版本号的整数 |
__ibmxl_release__ | 指示 XL C/C++ 编译器的发行版号。 | 表示发行版号的整数 |
__ibmxl_modification__ | 指示 XL C/C++ 编译器的修改号。 | 表示修改号的整数 |
__ibmxl_ptf_fix_level__ | 指示 XL C/C++ 编译器的 PTF 修订级别。 | 表示修订号的整数 |
__clang__ | 指示使用 Clang 前端 。 | 1 |
__clang_major__ | 指示 Clang 前端的主要版本号。 | 4 |
__clang_minor__ | 指示 Clang 前端的次版本号。 | 0 |
__clang_patchlevel__ | 指示 Clang 前端的补丁级别号。 | 1 |
__clang_version__ | 指示 Clang 前端的完整版本。 | 4.0.1 (tags/RELEASE_401/final) |
注意:
除了 xlclang/xlclang + + 的预定义宏外,您还可以指定 -qxlcompatmacros 以定义 表 1中列出的五个旧宏。 当您将程序从 IBM XL C/C++ for AIX, V13.1.3 或更低发行版迁移到由 xlclang 或 xlclang + +调用的 IBM XL C/C++ for AIX 16.1 时,这很有用。 |