ONC+ 開発ガイド

オプションデータ

オプションデータは共用体の一種ですが、次のような特殊な構文を持ち、非常によく使用されます。次のように宣言されます。

type-name *identifier;

これは次のように宣言した共用体と同じです。

union switch (bool opted) {
 	case TRUE:
 	type-name element;
 	case FALSE:
 	void;
} identifier;

また、これは次のような可変長配列の宣言とも同じです。ブール型 opted は、配列の長さと解釈できるからです。

type-name identifier<1>;

オプションデータは再帰的データ構造体、たとえば、リンクリストやツリーの宣言に便利です。