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

RESERVED 属性

RESERVED 属性は、STATIC EXTERNAL を暗黙指定します。さらに、変数が RESERVED 属性を持つ場合、 アプリケーションは以下の条件に従います。

変数が RESERVED 属性を持つ場合、 その変数がパッケージ内に保存されていない限り、INITIAL 値は無視されます。

構文図を読む構文図をスキップする>>-RESERVED--+------------+------------------------------------><
             '-(IMPORTED)-'
 

コンパイル単位に RESERVED 属性の変数があり、 それがその変数用の保存パッケージではない場合、 そのコンパイル単位は、保存パッケージを含むロード・モジュールの一部分であるか、 または保存パッケージを含む別のロード・モジュールから 変数をインポートしなければなりません。 後者の場合、宣言で RESERVED 属性の IMPORTED オプションを 指定しなければなりません。

owns_x:
  package
  exports(*)
  reserves(x);

  dcl x char(256) reserved init( ... );
  dcl y char(256) reserved init( ... );
  dcl z char(256) reserved(imported) init( ... );

end;

owns_y:
  package
  exports(*)
  reserves(y);

  dcl x char(256) reserved init( ... );
  dcl y char(256) reserved init( ... );
  dcl z char(256) reserved(imported) init( ... );

end;

owns_z:
  package
  exports(*)
  reserves(z);

  dcl z char(256) reserved(imported) init( ... );

end;

上記の例では、パッケージ owns_x が変数 x の ストレージを保存し初期設定します。このパッケージは、パッケージ owns_y と同じロード・モジュールに連係されていなければなりません。 また、このロード・モジュールは、パッケージ owns_z が連係された ロード・モジュールから変数 z をインポートしなければなりません。


Terms of use | Feedback

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