Go to main content
Oracle® Solaris 11.3 リンカーとライブラリガイド

印刷ビューの終了

更新: 2015 年 10 月
 
 

データ表現

オブジェクトファイルの形式は、8 ビットバイト、32 ビットアーキテクチャー、および 64 ビットアーキテクチャーを持つさまざまなプロセッサをサポートしています。しかしながら、データ表現は、より大きな、またはより小さなアーキテクチャーに拡張できるように意図されています。表 13表 14 に、32 ビットデータタイプと 64 ビットデータタイプの一覧を示します。

オブジェクトファイルは、いくつかの制御データをマシンに依存しない形式で表現します。この形式は、オブジェクトファイルの共通の識別および解釈を規定します。オブジェクトファイルの残りのデータは、このオブジェクトファイルが作成されたマシンとは関係なく、対象となるプロセッサ用にエンコードされています。

表 13  ELF 32 ビットデータタイプ
名前
サイズ
整列
目的
Elf32_Addr
4
4
符号なしプログラムアドレス
Elf32_Half
2
2
符号なし、中程度の整数
Elf32_Off
4
4
符号なしファイルオフセット
Elf32_Sword
4
4
符号付き整数
Elf32_Word
4
4
符号なし整数
unsigned char
1
1
符号なし、短い整数
表 14  ELF 64 ビットデータタイプ
名前
サイズ
整列
目的
Elf64_Addr
8
8
符号なしプログラムアドレス
Elf64_Half
2
2
符号なし、中程度の整数
Elf64_Off
8
8
符号なしファイルオフセット
Elf64_Sword
4
4
符号付き整数
Elf64_Word
4
4
符号なし整数
Elf64_Xword
8
8
符号なし、長い整数
Elf64_Sxword
8
8
符号付き、長い整数
unsigned char
1
1
符号なし、短い整数

オブジェクトファイルの形式で定義されるすべてのデータ構造は、該当クラスの自然なサイズと整列ガイドラインに従います。データ構造に明示的にパッドを入れることで、4 バイトオブジェクトに対して 4 バイト整列を保証したり構造サイズを 4 の倍数に設定したりできます。また、データはファイルの先頭から適切に整列されます。したがってたとえば、Elf32_Addr メンバーが存在する構造はファイル内において 4 バイト境界で整列されます。同様に、Elf64_Addr メンバーが存在する構造は 8 バイト境界で整列されます。


注 -  移植性を考慮して、ELF ではビットフィールドを使用していません。