オプションデータは共用体の一種ですが、次のような特殊な構文を持ち、非常によく使用されます。次のように宣言されます。
type-name *identifier;
これは次のように宣言した共用体と同じです。
union switch (bool opted) {
case TRUE:
type-name element;
case FALSE:
void;
} identifier;
また、これは次のような可変長配列の宣言とも同じです。ブール型 opted は、配列の長さと解釈できるからです。
type-name identifier<1>;