構造体構成子

構造体構成子を使うと,構造型のスカラ値を宣言することができます。これは次の形式を取ります。

d-name (expr-list)

d-name
構造型の名前。

expr-list
成分値を宣言する式並び。値は,その数と順序の点で,構造型の成分と一致していなくてはなりません。必要ならば,対応する成分の型と種別パラメタが一致するように,(代入の規則に従って) 値が変換されます。

規則と振る舞い

構造体構成子は,その構造型の定義の前に置くことはできません。

構造型の成分が配列である場合,式並び中の形状は,成分配列の形状と適合していなくてはなりません。

構造型の成分がポインタである場合,式並び中の値は,ポインタ代入文で有効な指示先になるようなオブジェクトに評価されなくてはなりません (定数は,ポインタ代入文の中では有効な指示先ではありません)。

構造体構成子中のすべての値が定数式である場合,構成子は構造型定数式です。

次の構造型定義を考えます。

	TYPE EMPLOYEE
	  INTEGER ID
	  CHARACTER(LEN=40) NAME
	END TYPE EMPLOYEE

これを使うと,次の構造体構成子を作ることができます。

	EMPLOYEE(3472, "John Doe")

次の例は,構造型の成分を持つ型を示しています。

	TYPE ITEM
	  REAL COST
	  CHARACTER(LEN=30) SUPPLIER
	  CHARACTER(LEN=20) ITEM_NAME
	END TYPE ITEM

	TYPE PRODUCE
	  REAL MARKUP
	  TYPE(ITEM) FRUIT
	END TYPE PRODUCE

この例では,成分の値を宣言するには,埋め込み型構造体構成子を使用する必要があります。

	PRODUCE(.70, ITEM (.25, "Daniels", "apple"))

関連情報

ポインタ代入の詳細については,「ポインタ代入」を参照してください。