VOLATILE

文と属性:オブジェクトの値が,現在のプログラム単位に対して局所的な情報だけを基にすると完全に予測不可能であることを宣言します。これにより,オブジェクトがコンパイル時に最適化されるのを防ぐことができます。

VOLATILE 属性は,型宣言文または VOLATILE 文で指定することができ,以下のいずれかの形式を取ります。

形式

型宣言文

type, [att-ls,] VOLATILE [,att-ls] :: object [,object]...

VOLATILE object [,object]...

type
データ型指定子。

att-ls
省略可能な属性指定子並び。

object
オブジェクトの名前,または斜線で囲まれた共通ブロックの名前。

規則と振る舞い

変数または共通ブロックが,コンパイラ認識できないような方法で読み書きされる可能性がある場合,VOLATILE として宣言されなくてはなりません。以下のような例があります。

配列が VOLATILE として宣言されていると,配列のすべての要素が VOLATILE になります。共通ブロックが VOLATILE として宣言されていると,共通ブロック中のすべての変数が VOLATILE になります。

構造型のオブジェクトが VOLATILE として宣言されていると,その成分も VOLATILE になります。

ポインタが VOLATILE として宣言されていると,ポインタ自身が VOLATILE になります。

VOLATILE 文では以下のものは指定できません。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

型宣言属性の互換性

次の例は,VOLATILE 属性を指定する型宣言文を示しています。

	INTEGER, VOLATILE :: D, E

次の例は,VOLATILE 文を示しています。

	PROGRAM TEST
	LOGICAL(1) IPI(4)
	INTEGER(4) A, B, C, D, E, ILOOK
	INTEGER(4) P1, P2, P3, P4
	COMMON /BLK1/A, B, C

	VOLATILE /BLK1/, D, E
	EQUIVALENCE(ILOOK, IPI)
	EQUIVALENCE(A, P1)
	EQUIVALENCE(P1, P4)

名前付き共通ブロック BLK1 と変数 D および EVOLATILE になります。変数 P1P4 は,P1 の直接的な等価関係と P4 の間接的な等価関係のために VOLATILE になります。