構造体位置合わせ

Linux 構造体は、align コンパイラー・オプションの設定に従って位置合わせされます。 このコンパイラー・オプションは、 構造体および共用体のストレージをレイアウトするときにコンパイラーが使用する位置合わせ規則を指定します。 サブオプションごとに、位置合わせに与える影響は 異なります。構造体のマッピングは、構造体定義の末尾にある有効な位置合わせに基づいて行われます。構造体メンバーは、型によって位置合わせされます。

#pragma options align ディレクティブは、構造体または共用体の定義内に組み込むことができます。 この位置合わせは、ネストされた構造体または共用体の定義、および外側の構造体または共用体の右中括弧 の後に現れるすべての構造体または共用体にのみ適用されます。 外側の構造体または共用体の位置合わせは、その定義の左中括弧で有効であった位置合わせになります。

異なる位置合わせを持つ構造体および共用体をネストできます。 各構造体は、適用可能な位置合わせを使用してレイアウトされます。ネストされた構造体の開始位置は、 それをネストとして含んでいる構造体の位置合わせによって判別されます。

同一メンバーを持っているが異なった位置合わせを使用している構造体または共用体には、型互換性はなく、互いに割り当てることはできません。

関連参照

IBM Copyright 2003