struct中的冒号——位域
位域更节省空间,占用更少的字节(指定占用的bit数,而不是直接整个byte占用)
下述结构体占4字节
struct tagStudent { unsigned short s1; //2 unsigned short s2; //2 };
修改成位域,占2字节
struct tagStudent2 { unsigned short s1:1; //1 unsigned short s2:1; //1 };
不是所有数据类型都可以用位域的,如指针、浮点型。64位软件中指针固定占8字节,在32位软件中指针固定占4字节
关于位域参考结构体中冒号的含义及用法_结构体冒号_蓝色的杯子的博客-CSDN博客
struct有严格的对齐机制,此文不再赘述,参考struct(结构体)对齐规则_浮华丶一世的博客-CSDN博客