XL Fortran for AIX V8.1.1
ランゲージ・リファレンス
+----------------------------------IBM 拡張----------------------------------+
- 注:
- この項では、変数のストレージ・クラスについてのみ扱っています。名前付き定数およびそのサブオブジェクトは、リテラル のストレージ・クラスを持っています。
すべての変数は、基本的には、次の 5 つのストレージ・クラスのいずれか 1 つによって表されます。
- Automatic
- プロシージャー内の変数のためのもので、プロシージャーの終了時に保持されません。変数はスタック・ストレージに常駐します。
- Static
- プログラムが終了するまでメモリーを保持する変数のためのものです。変数は、データ・ストレージに常駐します。サイズの大きい、初期化されていない変数は、.bss ストレージに常駐します。
- Common
- 共通ブロック変数のためのものです。共通ブロック変数が初期化されると、ブロック全体がデータ・ストレージに常駐します。初期化されない場合は、ブロック全体が .bss ストレージに常駐します。
- Controlled Automatic
- 自動オブジェクトのためのものです。変数はスタック・ストレージに常駐します。
XL Fortran は、プロシージャーに対するエントリーにストレージを割り振り、プロシージャーが完了すると、そのストレージの割り振りを解除します。
- Controlled
- 割り振り可能オブジェクトのためのものです。変数は、動的ストレージに常駐します。ストレージの割り振りおよび割り振り解除は、明示的に行わなければなりません。
以下のストレージ・クラスは、それ自体にストレージはありませんが、実行時に基本ストレージに関連付けられます。
- Pointee
- 対応する整数ポインターの値によって異なります。
- Reference parameter
- 仮引き数で、対応する実引き数がデフォルトの引き渡し方式または %REF によってプロシージャーに渡されます。
- Value parameter
- 仮引き数で、対応する実引き数が値によってプロシージャーに渡されます。
引き渡し方法の詳細については、%VAL および %REFを参照してください。
変数名には、次の 3 つの方法によってストレージ・クラスが割り当てられます。
- 明示
- 仮引き数は、reference parameter または value parameter の明示的なストレージ・クラスを持ちます。詳細については、%VAL および %REFを参照してください。
- Pointee 変数は、pointee の明示的なストレージ・クラスを持ちます。
- STATIC 属性が明示的に指定された変数は、static の明示的なストレージ・クラスを持ちます。
- AUTOMATIC 属性が明示的に指定された変数は、automatic の明示的なストレージ・クラスを持ちます。
- COMMON ブロックに指定された変数は、common の明示的なストレージ・クラスを持ちます。
- SAVE 属性が明示的に指定された変数は、static の明示的なストレージ・クラスを持ちます。ただし、これは、変数が COMMON ステートメントに対しても指定されない場合に限られます。この場合、ストレージ・クラスは common となります。
- DATA ステートメントに指定される変数、またはタイプ宣言ステートメントで初期化される変数は、static のストレージ・クラスを持ちます。ただし、これは、変数が COMMON ステートメントに対しても指定されない場合に限られます。この場合、そのストレージ・クラスは common となります。
- 文字タイプまたは派生型である関数結果変数は、reference parameter の明示的なストレージ・クラスを持ちます。
- SAVE 属性または STATIC 属性のどちらも持っていない関数結果変数は、automatic の明示的なストレージ・クラスを持ちます。
- 自動オブジェクトは、controlled automatic の明示的なストレージ・クラスを持ちます。
- 割り振り可能オブジェクトは controlled という明示的なストレージ・クラスを持ちます。
上記のいずれにも該当しない変数で、明示的なストレージ・クラスを持つ変数と同等でない変数は、明示的なストレージ・クラスを継承します。
上記のいずれにも該当しない変数で、明示的なストレージ・クラスを持つ変数と同等なものは、以下の場合、明示的なストレージ・クラスを持ちます。
- リストを持たない SAVE ステートメントが有効範囲単位に存在する
- 変数がメインプログラムの指定部分で宣言されている
- 暗黙
変数が明示的なストレージ・クラスを持たない場合、次のような暗黙のストレージ・クラスが割り当てられます。
- IMPLICIT STATIC ステートメントに指定される英字、ドル記号、下線のいずれかによってその名前が始まる変数は、static のストレージ・クラスを持ちます。
- IMPLICIT AUTOMATIC ステートメントに指定される英字、ドル記号、下線のいずれかによってその名前が始まる変数は、automatic のストレージ・クラスを持ちます。
特定の有効範囲単位内で、英字、ドル記号、下線のいずれかが IMPLICIT STATIC ステートメントまたは IMPLICIT AUTOMATIC ステートメントに指定されていない場合、暗黙のストレージ・クラスはホストと同じになります。
モジュールの指定部分で宣言された変数は、静的ストレージ・クラスに関連させられます。
上記のいずれにも該当しない変数で、暗黙のストレージ・クラスを持つ変数と同等なものは、暗黙のストレージ・クラスを継承します。
- デフォルト
それ以外の変数はすべて、デフォルトのストレージ・クラスを持ちます。
+--------------------------------IBM 拡張の終り-------------------------------+
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]