定義済み変数

定義済み変数は、記憶域が割り当てられていない変数です。代わりに、指定された基本変数の記憶域を共有します。

定義済み変数は DEFINED 属性で宣言され、この属性で基本変数も指定されます。定義済み変数への参照は、基本変数の記憶域のすべてまたは一部への参照となります。

変数の宣言に DEFINED 属性が含まれている場合、その変数の記述は基本変数に関連付けられた記憶域に適用されます。次に例を示します。

DECLARE A(5) CHARACTER(1);
DECLARE X CHARACTER(5) DEFINED(A);

この例では、X は長さ 5 の定義済み文字列変数です。X は、配列 A と記憶域を共有し、配列 A の代替記述となります。次の文についても同様です。

X = 'abcde';

この文は、A(1) に「a」、A(2) に「b」のように割り当てます。

定義済み変数の範囲は、整数値表現にすることができます。自動変数の範囲と同様に、ブロック入力で評価されてスタック フレームに格納されます。これらの範囲の表現に、同じブロックで宣言された静的でない変数への参照を含めることはできません。

記憶域の代替記述付加の規則など、定義済み変数の詳細については、「記憶域の共有」のセクションを参照してください。