1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以
选择其他类型。
2. 位段的成员名后边有⼀个冒号和⼀个数字。
3. 位段的成员可以是 int unsigned int signed int 或者是 char 等类型
4 位段的空间上是按照需要以4个字节( int )或者1个字节( char )的⽅式来开辟的。
5. 位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使⽤位段。
struct A
{
int _a:2;
int _b:5;
int _c:10;
int _d:30;
};
//4(放abc)+4(放d)=8
struct S
{
char a:3;
char b:4;
char c:5;
char d:4;
};
//1(放a,b)+1(放c)+1(放d)=3
struct S s = {0};
s.a = 10;
s.b = 12;
s.c = 3;
s.d = 4;