FILLER 項目
FILLER 項目は、前の項目と同じレベル番号を持つ項目であるかのように扱われます。
この暗黙の FILLER 項目のサイズは、次のように計算されます。
- 位置合わせされた項目の前にあるすべての基本データ項目によって占有される文字の総数が、前に追加された暗黙の FILLER 項目とともに合計されます。
- この合計が、上記の位置合わせの計算で乗数 (2、4、8、または 16) として使用された係数 m で除算されます。
- この除算の剰余 r がゼロである場合には、暗黙の FILLER 項目は必要ありません。 剰余がゼロでない場合には、暗黙の FILLER 項目のサイズは m - r となります。
暗黙の FILLER 項目のサイズは、それが入っているグループ項目のサイズには含まれません。
グループ項目は通常、英数字として定義されます。 すべての FILLER 項目はスペースで初期設定されます。 その後、SYNCHRONIZED 文節を介して生成される暗黙の FILLER 項目も、(デフォルトの) *STDINZ コンパイラー・オプションのもとでスペースを使って初期設定されます。 *NOSTDINZ または STDINZHEX00 オプションのもとでは、これら暗黙の FILLER 項目に 16 進数のゼロが含まれることになります。
グループ項目が、OCCURS 文節で定義され、位置合わせされることになっているデータ項目が入っている場合には、暗黙の FILLER 項目も、コンパイラーによって追加される場合があります。
暗黙の FILLER を追加するかどうかを決定するために、次の処置がとられます。
- 必要なすべての暗黙 FILLER 項目を含めて、コンパイラーはグループ項目のサイズを計算します。
- この合計が、グループ内の任意の基本項目で必要とされる最大の m によって除算されます。
- r がゼロの場合には、暗黙の FILLER 項目は必要ありません。 r がゼロでない場合には、サイズが m - r の暗黙の FILLER 項目を追加しなければなりません。
暗黙の FILLER 項目は、OCCUR 文節が入っているグループ項目が現れるたびに、その終わりに挿入できます。 これは、後続のグループ項目のオカレンスを同期させるために行うものです。
レベル 01 または 77 の項目は、次のような規則に従って位置合わせされます。
| 区域 | レベル番号 | 境界合わせ |
|---|---|---|
| 作業用ストレージ・セクション | 01 |
16 バイト |
| ローカル・ストレージ・セクション | 01 |
16 バイト |
| ファイル・セクション | 01 | コンパイラーは、項目を同期化するために 16 バイト境界を想定します。 |
| リンケージ・セクション | 01 |
コンパイラーは、項目を同期化するために 16 バイト境界を想定します。ポインター・データ項目とプロシージャー・ポインター・データ項目は同期されません。 |