#include<stdio.h>
struct S
{
char a : 3;
char b : 4;
char c : 8;
char d : 1;
};
int main()
{
struct S s = { 0 };
s.a = 10;
s.b = 12;
s.c = 3;
s.d = 4;
printf("%zd", sizeof(s));
return 0;
}
一次开辟一个字节位段冒号后面表示成员所占比特位,按顺序一个字节占满则开辟一个新的字节,d不会用ab开辟的第一个字节而是单独开辟一个字节
成员在使用内存的时候默认从右向左写入