LIKE 属性は、宣言される名前が、参照される構造体または共用体 (LIKE 属性の オブジェクト) と論理的に同じ編成であることを示します。 オブジェクト変数のメンバー名およびその属性 (次元属性を含む) は、 有効にコピーされ、宣言される名前のメンバーになります。 必要であれば、コピーされたメンバーのレベル番号は自動的に調整されます。 オブジェクト変数名およびその属性 (次元属性を含む) は無視されます。
|
すべての LIKE 属性のオブジェクトは、 その LIKE 属性が拡張される前に宣言された名前に対応しています。
新しいメンバーを、作成された構造または共用体に追加することはできません。 LIKE 属性のオブジェクト変数のすぐあとのレベル番号は、 LIKE 属性を持つ名前のレベル番号以下でなければなりません。
次の宣言では、X に対し同じ構造体が生成されます。
dcl
1 A(10) aligned static,
2 B bit(4),
2 C bit(4),
1 X like A;
dcl
1 X,
2 B bit(4),
2 C bit(4);
次元 (DIM(10))、ALIGNED、および STATIC 属性は、 LIKE 拡張の一部としてコピーされないことに注意してください。
LIKE 属性は、デフォルトが適用される前、もしくは ALIGNED 属性 および UNALIGNED 属性が LIKE オブジェクト変数に含まれるエレメントに 適用される前に拡張されます。