位段 (bit field)也叫位域
位段的声明和结构类似,但是它的成员是一个或多个位的字段,这些不同长度的字段实际上存储于一个或多个×××变量中。
位段的声明和任何普通成员声明相同,有两个例外:
1.位段成员必须声明为int ,signed int(有符号整型),unsigned int(无符号整型)
2.成员名后面是一个冒号和一个整数,这个整数指定该位段所占用位的数目。
Eg:
#include<stdio.h> #include<stdlib.h> struct s { int i : 2; //占2位 int j : 5; //占5位 int k : 30; //占30位 }; int main() { printf("%d\n", sizeof(struct s)); getchar(); return 0; }
运行结果:
8