struct中的冒号——位域

发布时间 2023-09-20 18:25:12作者: 夕西行

位域更节省空间,占用更少的字节(指定占用的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博客