Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, コンパイラーおよびランタイム 移行ガイド

AUTOMATIC の初期設定

AUTOMATIC 変数に以下のいずれかの属性がある場合にコンパイラー・オプション INITAUTO を指定すると、INITIAL 属性が指定されていない AUTOMATIC 変数に対して適切な INITIAL 属性が追加されます。

詳細については、「プログラミング・ガイド」を参照してください。

コンパイラー・オプション DFT(INITFILL) を使用すると、すべての AUTOMATIC ストレージは指定のバイト値 (またはバイト値を指定しない場合には '00'x ) で埋められます。 以下の属性を持つ変数を初期化するのに使用できます。

またコンパイラー・オプション INITFILL は他のすべての AUTOMATIC 変数も指定 (またはデフォルト) のバイト値で埋めますが、こうした変数は実際には適切に初期化されません。 例えば、DFT (INITFILL) を介して初期化された FIXED DEC 変数を使用すると、たちまちデータ例外が生じます。

ランタイム・オプションの 3 番目のサブオプションを 00 に設定すると (例 STORAGE(,,00))、すべてのルーチン (ライブラリー・ルーチンを含む) 内のすべての AUTOMATIC ストレージは 16 進数値 00 で埋められます。 これは、DFT(INITFILL) コンパイラー・オプションと同じ効果および有効性を持っていますが、アプリケーション内のすべてのルーチンに適用され、パフォーマンスにかなり悪い影響を与えるという点が異なります。 またコンパイラーはこのオプションが使用されているかどうかを認識しないため、OPT(2) または OPT(3) を使用してコンパイルされたコードに対して望ましくない影響を与える可能性があります。変数が初期化されていないとコードが無効になりますし、最適化プログラムがこのランタイム・オプションを使用して修復できないコードの最適化方法を選択することになる場合があります。

ランタイム・オプションの 3 番目のサブオプションを CLEAR に設定すると (例 STORAGE(,,CLEAR))、MAIN が呼び出される前にすべての AUTOMATIC ストレージは 16 進数値 00 で埋められます。 これは DFT(INITFILL) コンパイラー・オプションと同じ効果および有効性を持っていますが、ただし MAIN ルーチンに対してのみ適用される点が例外です。 またコンパイラーはこのオプションが使用されているかどうかを認識しないため、OPT(2) または OPT(3) を使用してコンパイルされたコードに対して望ましくない影響を与える可能性があります。変数が初期化されていないとコードが無効になりますし、最適化プログラムがこのランタイム・オプションを使用して修復できないコードの最適化方法を選択することになる場合があります。


Terms of use | Feedback

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