结构体中的联合体用法
时间: 2024-08-13 11:10:24 浏览: 96
编程C语言常识(IAR) 结构体与联合体
结构体中的联合体(union)在C/C++中是一种特殊的数据类型,它的主要用法是存储不同类型但相同大小的数据成员。联合体内的所有数据成员共享同一块内存空间,这意味着无论当前哪个成员被占用,其他成员都会占据相同的物理位置,而不会额外分配空间。
以下是一些联合体的基本用法:
1. 定义联合体:
```c
union MyUnion {
int i; // 整型
float f; // 浮点型
char c[10]; // 字符数组
};
```
2. 存储和访问联合体成员:
```c
union MyUnion u;
u.i = 10; // 存储整数值
printf("u.f = %.2f\n", u.f); // 可以访问浮点值,但实际上是基于i的位置计算的
u.c = 'A'; // 更新字符数组的第一个元素
```
3. 注意事项:
- 在任何时候,联合体中的只能有一个成员处于激活状态(即非空),其他成员会被隐式清零。
- 访问联合体成员时,需要注意的是它们共享的内存地址和可能存在的类型转换问题。
阅读全文