刚刚阅读了一些匿名结构以及它是如何不标准的,并且它的一些一般用例是未定义的行为......
这是基本情况:
struct Point {
union {
struct {
float x, y;
};
float v[2];
};
};
Run Code Online (Sandbox Code Playgroud)
因此,写入x然后从v [0]读取将是未定义的,因为您可能期望它们是相同的,但可能不是这样.
不确定这是否属于标准,但同类型的工会......
union{ float a; float b; };
是否未定义写入a然后从b读取?
也就是说,标准是否说明了关于数组的二进制表示和相同类型的顺序变量.
c++ ×1