小编joh*_*doe的帖子

C++与联合的未定义行为

刚刚阅读了一些匿名结构以及它是如何不标准的,并且它的一些一般用例是未定义的行为......

这是基本情况:

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++

5
推荐指数
1
解决办法
1787
查看次数

标签 统计

c++ ×1