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

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)