联合体#
形如
1 | union Union_name { |
和 结构体 struct
有什么区别?
结构体
各成员各自拥有自己的内存,各自使用互不干涉,同时存在的,遵循内存对齐原则。一个struct变量的总长度等于所有成员的长度之和。
联合体
各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写),各变量共用一个内存首地址。任一时刻只有一个成员的数据是有意义的,即 a、b、c不能同时存在。
枚举#
形如
1 | enum color{red,orange,yellow,green,blue,purple}; |
不可对枚举元素赋值,因为枚举元素本身就是常量。
合法赋值 x=red y=(enum color)4
等价于
x=red y=green
非法赋值 z=Monday
自定义类别#
形如 即 1
2typedef 原类型名 新类型名
typedef char unint8_t;char a;
等价于
uint8_t a;