【c语言】位段

一、什么是位段

        位段是结构体衍生出的一种存储数据的类型,其成员只能是整型家族。(int, unsigned int, char)

二、位段的存储结构

【c语言】位段_第1张图片

 冒号后的数字表示这个字段所占的二进制位数。

3+5+6 = 14,但是最后的大小并不是14bit,而是4*8 = 32 bit。

因为位段的存储是按照字节分配的(如果是int的字段,那么一次分配4字节以供使用;若为char的字段,那么一次分配1字节以供使用)。

4字节 = 32 bit,32 够14 使用,所以最后的大小就是32bit即4字节。


 

【c语言】位段_第2张图片

3+5+6+32 = 48bit;4字节是不够用的,又分配4字节以供使用,最终大小就是8字节。

总结

        位段的应用场景是数据包的内存分配,为了使得数据包尽可能的小,选择使用位段的结构进行缩减。 

你可能感兴趣的:(c语言,开发语言)