C语言
复杂数据类型
共用体(Union)
也称为联合体,由多个数据成员构成,但这些数据成员共享同一段内存空间。
对某个数据成员赋值会覆盖其他数据成员,在某一时刻起作用的只有某一个数据成员(最近被赋值的那个数据成员)。
共用体的大小为其最长的数据成员所占内存空间大小。
共用体在实际开发中用的并不多,可以用于轻松分离一个多字节数据的每个字节,用于判断当前系统的存储模式等场景。
一般用的是小端存储模式(高字节高地址)
51单片机用的大端存储模式(高字节低地址)
验证存储模式方法:
union{
short s;
char c;
}t;
t.s = 1;
if(t.c)
printf("当前系统为小端存储模式\n");
else
printf("当前系统为大端存储模式\n");
枚举(Enum)
表示只有有限种不同取值的数据,比如性别,星期等。
和结构体、共用体一样,都是自定义数据类型,必须先声明再使用。
枚举元素:本质就是int类型常量,默认从0开始。同一个作用域范围内的不同枚举类型中的枚举元素不能同名。