【发布时间】:2016-01-08 12:39:31
【问题描述】:
我有这样的事情:
union DataXYZ
{
struct complex_t
{
float real, imag;
} complex;
struct vector_t
{
float magnitude, phase;
} vector;
};
我有一些这些向量,作为通用工作空间内存,我在语义上下文之后相应地使用这些字段。
我知道当最后一个活动成员是另一个字段(和类型?)时,读取联合中的字段是未定义的行为。当类型和布局完全匹配时,这是否重要?
我一直在评论一些其他类似的问题,要求提供保证行为的参考资料,但什么都没有出现 - 因此提出了这个问题。
【问题讨论】:
-
不是很好的副本。没有标准参考。
-
这其实是合法的。
-
相关:stackoverflow.com/questions/26560311/…(但下面的答案有更多参考)。
标签: c++ undefined-behavior unions