共用体メンバーは、初期値を持つことができます。 ただし、共用体が静的である場合、INITIAL 属性を持つことができる共用体のメンバーは 1 つだけです。 共用体が静的でない場合、INITIAL 属性は指定された順に適用されます。 後続の初期値は、その前の値を重ね書きします。
次の例では、NT1 の宣言は、これが静的ストレージ属性を持つ場合は無効になります。
dcl
1 NT1 union automatic,
2 Numeric_translate_table1 char(256)
init( (256)'00'X),
2 *,
3 * char(240),
3 * char(10) init('0123456789'),
2 * char(0);
dcl
1 NT2 union static,
2 Numeric_translate_table2 char(256),
2 *,
3 * char( rank('0') )
init((1)(low(rank('0'))) ),
3 * char(10) init('0123456789'),
3 * char( (256-(rank('0'))-10) )
init((1)(low( (256-(rank('0'))-10) )) ),NT2 の宣言は、これが静的ストレージ・クラスを持っていても有効です。 さらに、NT2 宣言は、EBCDIC の実行モードと ASCII の実行モードの間で移植性があります。