结构体的概率与定义
结构体是多个类型打包在一起,可以用来表示复杂数据类型。
结构体定义:
struct [结构体名称]{
结构体成员; …
} 结构体变量,结构体指针;
其中结构体变量和结构体指针可以省略单独定义
示例:
structStudent{char*name;intage;}st1,*st2;结构体的大小
1.结构体的大小一定是结构体内最大的内置类型的倍数
2.结构体的每个元素位置一定是元素类型大小的倍数
联合体
联合体是多个成员共享一个内存空间,大小是最大 成员的大小。每个成员的起始地址是相同的。
联合体定义:
union [联合体名称]{
联合体成员; …
}联合体变量,联合体指针;
示例:
uniontest{inta;charb;}t1,*pt;两者的区别
| 类型 | 内存特点 | 用途 |
|---|---|---|
| struct | 成员独立内存,全部共存 | 描述对象一组属性(传感器数据、设备信息) |
| union | 成员共享内存,同一时刻只有一个有效 | 大小端检测、协议解析、内存复用 |