C语言的union类型是一种用于存储不同数据类型的数据结构,但与struct类型不同,union只能同时存储其中的一个成员的值,而不是所有成员的值。这可以节省内存,因为union的大小等于其最大成员的大小。
- union UnionName {
- data_type member1;
- data_type member2;
- //...
- data_type memberN;
- };
union的特点包括:
内存共享:union的各个成员共享相同的内存位置,因此只能存储一个成员的值。 如果更改一个成员的值,会影响其他成员的值。
大小等于最大成员的大小:union的大小等于其中最大成员的大小。 (union需要足够的内存来容纳最大的成员)
可以通过成员访问:使用.运算符来访问union中的成员,就像访问struct中的成员一样。