データ構造サブフィールドの位置合わせ

サブフィールドの位置合わせが必要な場合があります。 場合によっては、それが自動的に行われることがありますが、手操作で行わ なければならないこともあります。

たとえば、長さ表記法を使用し、基底ポインターまたはプロシージャー・ポイン ター・タイプのサブフィールドを定義している場合には、コンパイラーが必要に 応じて埋め込みを行うので、サブフィールドは確実に正しく位置合わせされます。

浮動、 整数、または符号なしサブフィールドを定義している場合には、 実行時のパフォーマンスを改善するために位置合わせが 必要になる場合があります。 長さ表記法を使用してサブフィールドを定義する場合には、 データ構造定義にキーワード ALIGN を 指定することによって、浮動、整数または符号なしサブフィールド を自動的に位置合わせすることができます。 ただし、以下の例外に注意してください。
自動位置合わせでは、フィールドが次の境界で位置合わせされることになります。

フィールドを手操作で位置合わせしている場合には、それらが同じ境界で位置合わせ されることを確認してください。 ((桁 - 1) mod n) = 0 の 場合には、開始位置は n バイト境界にあります。("x mod y" の値は、 整数算術で x を y で除算した余りです。これは、X DIV Y の後の MVR 値と同じです。)

図 1 は、一連のバイトを示し、位置合わせに使用される種々の 境界を表しています。

図 1. データ位置合わせの境界
この図は、データ位置合わせの境界を示しています。
上のバイト順序については、次の点に注意してください。