
前提基础类型unsigned int存储单元为 32bit。 重点位段是从低位往高位填充小端编译器绝大多数 MDK、GCC 都是不能跨存储单元存放一个位段成员。按照4字节或者8个字节来开辟struct A { int a : 2; int b : 5; int c : 10; int d : 30; }; printf(%d\n, sizeof(struct A));//开辟8个字节一共位段应该是同类型,位段优点节省内存缺点标准没有规定 bit 排布顺序可移植性差【最大坑】C 语言标准没有规定位段从高位开始还是低位开始存放。枚举enum Day {//星期 Mon, Tues, Wen, Fri, }; //定义 enum Day s Mon; //常量对应的值 printf(%d\n,Mon); printf(%d\n, Wen); 改变一下 enum Day {//星期 Mon1, Tues, Wen, Fri, };