+----------------------------------IBM 拡張----------------------------------+
目的
AUTOMATIC 属性は、変数に自動のストレージ・クラスを持たせることを指定します。 つまり、プロシージャーが終了すると、変数は定義されていない状態になります。
構文
>>-AUTOMATIC--+----+--automatic_list--------------------------->< '-::-' |
規則
automatic が関数結果である場合、文字型または派生型であってはなりません。
ポインターまたは配列である関数結果、仮引き数、ステートメント関数、 自動オブジェクト、またはポインティング先には、AUTOMATIC 属性 を指定してはなりません。 AUTOMATIC 属性を持つ変数をモジュールの有効範囲単位内で定義することはできません。 共通ブロック項目に、AUTOMATIC 属性によって明示的に 宣言された変数を指定することはできません。
同じ有効範囲単位内で 1 つの変数に対して複数の AUTOMATIC 属性を指定してはなりません。
スレッドの作業範囲内で AUTOMATIC と宣言された 変数はすべて、そのスレッドに対してローカルになります。
AUTOMATIC 属性属性を持つ変数は、DATA ステートメントや型宣言ステートメントで初期化することはできません。
automatic がポインターの場合、AUTOMATIC 属性は ポインター自身に設定されるのであり、そのポインターに関連する (あるいは 関連する可能性のある) ターゲットに設定されることはありません。
AUTOMATIC 属性と互換性のある属性 | ||||
---|---|---|---|---|
|
例
CALL SUB CONTAINS SUBROUTINE SUB INTEGER, AUTOMATIC :: VAR VAR = 12 END SUBROUTINE ! VAR becomes undefined END
関連情報
+------------------------------End of IBM 拡張-------------------------------+