假设我有一个结构,ivec2
:
typedef struct ivec2 {
int x, y;
} ivec2;
我想知道是否可以建立类似于以下内容的 union :
union rectangle {
ivec2 size; // 8 bytes; members: int x, y;
int width, height; // 4 + 4 bytes
};
其中宽度
对应于size.x
,高度
对应于size.y
。
我发现可以做到这一点:
union rectangle {
ivec2 size; // 8 bytes
int arr[2]; // 4 + 4 bytes
};
但我可以与单独的成员一起做吗?
这张图片显示了我的意思:
最佳答案
您想要做的是在 union 内嵌套一个匿名结构。
而不是:
union rectangle {
ivec2 size;
int width, height;
};
做:
union rectangle {
ivec2 size;
struct {
int width;
int height;
};
};
关于我可以使用 union 来表达结构体和多个打包成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57415900/