Rational Developer for System z
Enterprise PL/I for z/OS, Version 4.1, プログラミング・ガイド

INITAUTO

INITAUTO オプションは、INITIAL 属性を指定せずに宣言されたすべての AUTOMATIC 変数に、INITIAL 属性を追加するようコンパイラーに指示します。

構文図を読む構文図をスキップする   .-NOINITAUTO--------------------.
>>-+-INITAUTO--+-----------------+-+---------------------------><
               |    .-FULL--.    |
               '-(--+-SHORT-+--)-'
 

INITAUTO(FULL) を指定すると、コンパイラーは、INITIAL 属性を持たないすべての AUTOMATIC 変数に、そのデータ属性に従って以下の INITIAL 属性を追加します。

コンパイラーは、その他の属性を持つ変数には INITIAL 属性を追加しません。

完全に初期化されていない AUTOMATIC 変数 (ただし、DFT(INITFILL) オプションと違って、これらの変数は意味のある初期値を持つようになりました) が入っている各ブロックごとに、プロローグの中により多くのコードが INITAUTO により生成されるよう になり、パフォーマンスに悪い影響を与えることになります。

INITAUTO オプションは、NOINIT 属性を指定して宣言された変数に対しては、INITIAL 属性を適用しません。

INITAUTO(SHORT) を指定すると、コンパイラーは、INITIAL 属性を持たない AUTOMATIC 変数に、この変数もスカラーで次のいずれかの属性を持っている場合に限り、INITIAL 属性を追加します。

INITAUTO(FULL) の場合と同様、追加された INITIAL 属性はデータ・タイプに適合します。

ランタイム STORAGE オプションを使用してすべてのストレージをゼロ設定しても、最適化プログラムが未初期化の AUTOMATIC 変数、特に、レジスターに合せて最適化されている同変数に対して不要なコードを生成することがあります。 上にリストしたデータ・タイプを持つスカラー変数はレジスターに最適化される可能性がある変数です。したがって、INITAUTO(SHORT) を使用した方が DFT(INITFILL) を使用するよりパフォーマンスへの影響が少ない場合があります。ただし、後者は最適化プログラムにあいまいなコードを残します。 さらに、コードが正しいのは、すべての変数が使用前に明示的に初期化された場合に限られます。


Terms of use | Feedback

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