命名它似乎是最好的。 C++ 中允许使用匿名联合,但不允许使用结构。
union
{
struct foo
{
F32 _11, _12, _13, _14;
F32 _21, _22, _23, _24;
F32 _31, _32, _33, _34;
F32 _41, _42, _43, _44;
} bar;
F32 _m[16];
};
您可以使用引用/宏来允许访问而无需bar
.
F32& _11 = bar._11;
F32& _12 = bar._12;
本质上与匿名结构相同。不过我真的不推荐这个。使用bar._11
如果可能的话。
私人/公共(某种程度):
struct mat
{
struct foo
{
friend class mat;
private:
F32 _11, _12, _13, _14;
F32 _21, _22, _23, _24;
F32 _31, _32, _33, _34;
F32 _41, _42, _43, _44;
};
union
{
foo bar;
F32 _m[16];
};
};