欢迎光临
我们一直在努力

嘎嘎滴辣虾自定义类型:联合和枚举

一:联合体

联合体类型的声明:像结构体一样,联合体也是由一个或多个成员构成,这些成员是不同的类型。联合体的关键字是union.但是编译器只为最大的成员分配足够的内存空间,联合体的特点是所有成员共用同一块内存空间。所以联合体也叫共用体。

从联合体和结构体的对比中可以看出联合体没有浪费空间(从右图中看出联合体在用i的时候不可以用c,用c的时候不可以用i,因为c,i的值的改变会相互影响)

联合体大小的计算:1.联合体的大小至少是最大成员的大小;2.当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍 

易错点

此题所占用了16个比特位,根据联合体的特点,c为占用空间最大的成员,但结果不等于14,因为这个大小不是其中成员中最大基本类型对齐的整数倍,又因为最大基本类型为4,所以这个联合体总共占16个比特位

通过联合体实现商品的选择,算每个联合体中结构体的大小,然后得到联合体的大小

判断大小端字节序的一个方法

判断大小端字节序的另外一种方法:对联合体中的成员i赋值,i为int类型,四个字节,再读取c的值,因为是联合体,c与i的关系应与上面我所列举的右图一样,所以通过判断c的值就可以判断大小端字节序。

二:枚举

枚举类型的声明:把可能的取值一一列举(enum 枚举的关键字)

{}中的内容都是枚举类型的可能取值,是枚举常量(define也可以定义常量)

枚举类型的优点:1.增加代码的可读性和可维护性;2.和#define定义的标识符比较枚举有类型检查,更加严谨;3.便于调试,预处理阶段会删除#define定义的符号;4.使用方便,一次性可以定义多个常量;5.枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用;

赞(0)
未经允许不得转载:171主机测评 » 嘎嘎滴辣虾自定义类型:联合和枚举
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址