Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

LIKE 属性

LIKE 属性は、宣言される名前が、参照される構造体または共用体 (LIKE 属性の オブジェクト) と論理的に同じ編成であることを示します。 オブジェクト変数のメンバー名およびその属性 (次元属性を含む) は、 有効にコピーされ、宣言される名前のメンバーになります。 必要であれば、コピーされたメンバーのレベル番号は自動的に調整されます。 オブジェクト変数名およびその属性 (次元属性を含む) は無視されます。

構文図を読む構文図をスキップする>>-LIKE--object-variable---------------------------------------><
 
object-variable
大構造体、小構造体、または共用体のいずれでもかまいません。 LIKE 属性の指定を含むブロック内になければなりません。 修飾をすることはできますが、添え字を付けることはできません。 オブジェクトまたはそのすべてのメンバーは、 LIKE 属性もしくは REFER オプションを持つことはできません。

すべての 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 オブジェクト変数に含まれるエレメントに 適用される前に拡張されます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)