この節のポインターの位置合わせについての説明では、ポインターという用語は、ポインター・データ項目とプロシージャー・ポインター・データ項目の両方を指します。
ポインターが参照されたり REDEFINES 文節のサブジェクトであるときは、そのオブジェクト項目は位置合わせされていなければなりません。 言い換えると、レコードの始まりからの位置が 16 バイトの倍数になるオフセットに位置指定されていなければなりません。
作業用ストレージ・セクション、ローカル・ストレージ・セクションまたは ファイル・セクションにおいてポインターとして記述されたデータ項目は位置合わせされます。 ポインターが、レベル番号 01 から始まる構造の一部であれば、コンパイラーはその構造の先頭に位置合わせします。 その後、コンパイラーはポインターの前に FILLER 項目を配置し、データ項目も確実に位置合わせされるようにします。 コンパイラーは、これらの FILLER 項目を追加するときに警告を出します。
ポインターがリンケージ・セクション中の REDEFINES 文節のサブジェクトで、その文節のオブジェクトがポインターでない場合、 ユーザーは、ポインター位置合わせを保持する必要があるという警告を受け取ります。 作業用ストレージ・セクション、ローカル・ストレージ・セクションまたはファイル・セクションでの同様な状況においては、ユーザーが文節のオブジェクトを位置合わせしないと、エラーが発生します。
SYNCHRONIZED 文節は USAGE IS POINTER または USAGE IS PROCEDURE-POINTER 文節とともに指定できますが、この文節はポインター用にすでに暗黙指定されています。
ポインターがテーブルの一部であれば、そのテーブルの最初の項目は位置合わせされ、そのポインターのすべてのオカレンスも必ず同様に位置合わせされるよう、 そのテーブルの終わりに充てん文字項目が追加されることがあります。
データ構造に FILLER 項目が追加されないようにするには、構造の先頭にポインターを配置します。