Solaris 64 ビット 開発ガイド

ヘッダーファイル

1 組のシステムヘッダーが 32 ビットおよび 64 ビットのコンパイル環境をサポートします。64 ビットコンパイル環境用に別のインクルードパスを指定する必要はありません。

64 ビット環境をサポートするためにヘッダーに加えられた変更をより理解するには、ヘッダーの <sys/isa_defs.h> のさまざまな定義について理解しておくことをお薦めします。このヘッダー中には #define が含まれており、それらは各命令セットアーキテクチャに対して設定されています。<sys/types.h> をインクルードすると、自動的に <sys/isa_defs.h> がインクルードされます。

次の表にあるシンボルは、コンパイル環境 (コンパイラ) によって定義されます。

シンボル 

説明 

__sparc

SPARC ファミリーのプロセッサアーキテクチャのいずれかであることを示します。アーキテクチャには、SPARC V7、SPARC V8、および SPARC V9 があります。シンボルの sparc は、非推奨の __sparc の同義語です。

__sparcv8

『The SPARC Architecture Manual, Version 8』で定義されている 32 ビット SPARC V8 アーキテクチャを示します。 

__sparcv9

『The SPARC Architecture Manual, Version 9』で定義されている 64 ビット SPARC V9 アーキテクチャを示します。 

__x86

x86 ファミリーのプロセッサアーキテクチャのいずれかであることを示します。これらのアーキテクチャには 386、486、Pentium、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 ビットプラットフォームに移植する際の移植性が高くなります。