いくつかの匿名構造について読んだだけで、それが標準ではなく、一般的なユースケースは未定義の動作です...
これは基本的なケースです:
struct Point {
union {
struct {
float x, y;
};
float v[2];
};
};
したがって、書き込みx
と読み取りはv[0]
、同じであると期待するという点で定義されていませんが、そうではない場合があります。
これが標準かどうかはわかりませんが、同じタイプのユニオンです...
union{ float a; float b; };
a
への書き込みと読み取りは未定義b
ですか?
つまり、標準は配列のバイナリ表現と同じ型のシーケンシャル変数について何も言っていません。