XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

+----------------------------------IBM 拡張----------------------------------+


変数のストレージ・クラス

注:
この項では、変数のストレージ・クラスについてのみ扱っています。名前付き定数およびそのサブオブジェクトは、リテラル のストレージ・クラスを持っています。

基本ストレージ・クラス

すべての変数は、基本的には、次の 5 つのストレージ・クラスのいずれか 1 つによって表されます。

Automatic
プロシージャー内の変数のためのもので、プロシージャーの終了時に保持されません。変数はスタック・ストレージに常駐します。

Static
プログラムが終了するまでメモリーを保持する変数のためのものです。変数は、データ・ストレージに常駐します。サイズの大きい、初期化されていない変数は、.bss ストレージに常駐します。

Common
共通ブロック変数のためのものです。共通ブロック変数が初期化されると、ブロック全体がデータ・ストレージに常駐します。初期化されない場合は、ブロック全体が .bss ストレージに常駐します。

Controlled Automatic
自動オブジェクトのためのものです。変数はスタック・ストレージに常駐します。 XL Fortran は、プロシージャーに対するエントリーにストレージを割り振り、プロシージャーが完了すると、そのストレージの割り振りを解除します。

Controlled
割り振り可能オブジェクトのためのものです。変数は、動的ストレージに常駐します。ストレージの割り振りおよび割り振り解除は、明示的に行わなければなりません。

2 次ストレージ・クラス

以下のストレージ・クラスは、それ自体にストレージはありませんが、実行時に基本ストレージに関連付けられます。

Pointee
対応する整数ポインターの値によって異なります。

Reference parameter
仮引き数で、対応する実引き数がデフォルトの引き渡し方式または %REF によってプロシージャーに渡されます。

Value parameter
仮引き数で、対応する実引き数が値によってプロシージャーに渡されます。

引き渡し方法の詳細については、%VAL および %REFを参照してください。

ストレージ・クラスの割り当て

変数名には、次の 3 つの方法によってストレージ・クラスが割り当てられます。

  1. 明示

    上記のいずれにも該当しない変数で、明示的なストレージ・クラスを持つ変数と同等でない変数は、明示的なストレージ・クラスを継承します。

    上記のいずれにも該当しない変数で、明示的なストレージ・クラスを持つ変数と同等なものは、以下の場合、明示的なストレージ・クラスを持ちます。

  2. 暗黙

    変数が明示的なストレージ・クラスを持たない場合、次のような暗黙のストレージ・クラスが割り当てられます。

    特定の有効範囲単位内で、英字、ドル記号、下線のいずれかが IMPLICIT STATIC ステートメントまたは IMPLICIT AUTOMATIC ステートメントに指定されていない場合、暗黙のストレージ・クラスはホストと同じになります。

    モジュールの指定部分で宣言された変数は、静的ストレージ・クラスに関連させられます。

    上記のいずれにも該当しない変数で、暗黙のストレージ・クラスを持つ変数と同等なものは、暗黙のストレージ・クラスを継承します。

  3. デフォルト

    それ以外の変数はすべて、デフォルトのストレージ・クラスを持ちます。

+--------------------------------IBM 拡張の終り-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]