Solaris(64 位)开发者指南

头文件

一组系统头文件可同时支持 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

类型 intlong 和指针的长度均为 32 位的数据模型。

_LP64

类型 long 和指针的长度均为 64 位的数据模型。


注 –

符号 _ILP32_LP64 互斥。


如果无法编写完全可移植的代码,并且需要特定的 32 位与 64 位代码,请使用 _ILP32_LP64 在代码中设置条件。这会使编译环境独立于计算机,并且最大程度地增强应用程序对所有 64 位平台的可移植性。