在计算机的内存中是以字节为单元存储数据的,有些信息的存储,并不需要占用一个字节,只需要用一个或几个二进制位就够了,如性别用0或1就可以取值为男或女。为了节约存储空间,C语言提供了另一种数据结构:位域。
位域:把一个字节的8个二进制位划分成几个不同的区域,并说明每个区域的位数。每个域都有一个域名,允许在程序中按域名进行操作。
一般形式:
struct位域结构体名
{
位域列表
};
其中位域列表的形式为
类型说明符 位域名:位域长度
例如:
struct data
{
unsigned int a:2;
}
①先定义位域类型,在声明变量
例如:
struct data
{
unsigned int a: 2;
unsigned int b: 3;
unsigned int c: 3;
};
struct data t1,t2;
②定义位域的同时,声明变量
例如:
struct data
{
unsigned int a: 2;
unsigned int b: 3;
unsigned int c: 3;
}t1,t2;
位域的使用和结构体成员的使用相同,一般形式:
位域变量名.位域名