union联合体

发布时间 2023-10-08 19:21:30作者: iu本u

联合体只有一个成员,所以可以在一个联合体用不同的方式定义一个成员

这一个成员站得内存都是一个内存

联合体可以是匿名的也可以是有名字的

struct Vector2{
	float x, y;
};
struct Vector4 {
	union {
		struct {
			float x, y, z, w;
		};
		struct {
			Vector2 a, b;
		};
	};
};
void PrintVector(Vector2& vector) {
	std::cout << vector.x << "," << vector.y << std::endl;
}
int main() {
	Vector4 vector = { 0.1f,0.3f,9.0f,10.0f };
	PrintVector(vector.a);
	PrintVector(vector.b);
	vector.w = 34.0f;
	std::cout << "----------" << std::endl;
	PrintVector(vector.a);
	PrintVector(vector.b);
}