C++ 学习笔记
C++ union
简介
- 联合体
- union 中所有的变量公用一个内存地址
- 如果一个
union
中有五个 int 变量:a,b,c,d,e ,当我设置a为2时,所有的变量都是2 union
不可以有方法- 可以理解成 : 使用
union
是为了用不同的名称去访问同一个内存地址
1 |
|
- 进阶一点的demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
struct vector2
{
float x, y;
};
struct vector4
{
union
{
struct
{
float x, y, z, w;
};
struct
{
// a 和 (x, y)公用内存
// b 和 (z, w)公用内存
vector2 a, b;
};
};
};
void PrintVector2(const vector2& v)
{
std::cout << v.x << "," << v.y << std::endl;
}
int main()
{
vector4 v = {1.1f, 1.2f, 1.3f, 1.4f };
PrintVector2(v.a);
PrintVector2(v.b);
return 0;
}