このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
効率的なコードを生成するには、ターゲット・プロセッサが定義したバイト位置合せの制約に従ってコンパイルする必要があります。 これは、ターゲット・プロセッサが設定した制約に反する構造体にならないように、ユーザー定義の構造体に埋込みバイトを追加する必要があることを意味します。 コンパイラによる埋込みの様子を次の例で説明します。 ここで、int
は4バイト、short
は2バイト、char
は1バイトとします。
struct mydata { char C; long L; short B; long J; };
図3.3は、4バイト境界に位置を合せるためにstruct mydata
に埋込みが行われる様子を示しています。
このプラットフォーム上のint
の位置合せは4バイトであるため、char C
の後に3バイトが追加され、short B
の末尾に2バイトが追加されます。 埋込みを行うことで、この構造体のデータのアドレスを4等分にできます。 これを、構造体メンバーの位置合せと呼びます。 結果として構造体のサイズは当然、大きくなります。