一组系统头文件可同时支持 32 位和 64 位编译环境。您无需为 64 位编译环境指定其他头文件路径。
应了解头文件 <sys/isa_defs.h> 中的各种定义,以便更好地了解为支持 64 位环境而对头文件进行的更改。该头文件包含一组已知的 #defines,并会为每个指令集体系结构设置这些指令。如果包含 <sys/types.h>,则会自动包含 <sys/isa_defs.h>。
下表中的符号由编译环境定义:
符号 |
说明 |
---|---|
__sparc |
表示 SPARC 系列处理器体系结构,其中包括 SPARC V7、SPARC V8 和 SPARC V9 体系结构。符号 sparc 是 __sparc 的前身。 |
__sparcv8 |
表示 SPARC Architecture Manual 版本 8 中所定义的 32 位 SPARC V8 体系结构。 |
__sparcv9 |
表示 SPARC Architecture Manual 版本 9 中所定义的 64 位 SPARC V9 体系结构。 |
__x86 |
表示 x86 系列处理器体系结构,其中包括 386、486、Pentium、IA-32、AMD64 和 EM64T 处理器。 |
__i386 |
表示 32 位 i386 体系结构。 |
__amd64 |
表示 64 位 amd64 体系结构。 |
__i386 和 __amd64 互斥。符号 __sparcv8 和 __sparcv9 互斥并且仅当定义符号 __sparc 时才相关。
以下符号是从上面所定义的符号的一些组合派生而来的:
符号 |
说明 |
---|---|
_ILP32 |
类型 |
_LP64 |
类型 |
符号 _ILP32 和 _LP64 互斥。
如果无法编写完全可移植的代码,并且需要特定的 32 位与 64 位代码,请使用 _ILP32 或 _LP64 在代码中设置条件。这会使编译环境独立于计算机,并且最大程度地增强应用程序对所有 64 位平台的可移植性。