保证结构成员之间没有填充以将结构用作数组

时间:2013-12-07 21:36:59

标签: c++ structure padding

以下示例中是否始终保存以致电float z = data.AllCoordinates()[2]

struct Data {
    // data members
   float x, y, z;
    // data members
   float* AllCoordinates() { return &x; }
} data;

如果没有,如何保证结构成员之间缺乏差距?所以结构的一部分可以像数组一样使用。

1 个答案:

答案 0 :(得分:3)

不,不是。

如果希望结构像数组一样,为什么不直接声明结构包含数组?添加例如float & x() { return array[0]; }如果你愿意的话。