OCCURS キーワードによって、複数オカレンス・データ構造のオカレンス数を指定することがで きます。
この数値定数パラメーターは、小数点以下の桁数のない 0 より大きい値でな ければなりません。 これは、数値リテラル、数値を戻す組み込み関数、または数値定数とすること ができます。
定数の値は、キーワードの処理時には既知である必要はありませんが、コンパイル時には既知でなければなりません。
このキーワードは、プログラム状況データ構造、ファイル情報データ構造、また はデータ域データ構造には有効ではありません。
複数オカレンス・データ構造にポインター・サブフィールドが含まれている場合には、ポ インターに関するシステム記憶域の制約事項のために、繰り返し相互間の距離は正確 に 16 の倍数になっていなければなりません。 これは、繰り返し相互間の距離が各繰り返しの長さより大きくなる場合があることを意味 します。
以下は、ポインター・サブフィールドを持つ複数オカレンス・データ構造の記憶域割り振り を示す例です。
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++
D DS1 DS OCCURS(2)
D POINTER 16*
D FLD5 5
D DS2 DS OCCURS(2)
D CHAR16 16
D CHR5 5
記憶域でのフィールドの割り振り。 DS1 のオカレンスはそれぞれ 32 バイトで、DS2 の オカレンスはそれぞれ 21 バイトです。
