ONC+ 開発ガイド

識別型の共用体

識別型の共用体には、要素識別子に続いて、あらかじめ配置された一連のデータ型から要素識別子の値に応じて選択されたものが入ります。要素識別子のデータ型は、intunsigned intbool などの列挙型、のいずれかです。共用体の構成要素の型を“アーム”といい、符号化を暗黙に示す要素識別子に続けて記述されます。

宣言

識別型の共用体は次のように宣言します。

union switch (discriminant-declaration) {
  	case discriminant-value-A:
  		arm-declaration-A;
  	case discriminant-value-B:
  		arm-declaration-B;
  	...
  	default:
  		default-declaration;
 } identifier; 

キーワード case の後には、要素識別子として指定できる値を書きます。デフォルトアームは省略できますが、その場合は要素識別子として定義されていない値を持つものを正しく符号化できません。各アームのサイズは、それぞれ 4 の倍数になります。

識別型の共用体は、要素識別子に続けて、それに対応するアームが符号化されます。

識別型共用体の符号化

Graphic