C语言之位域

一、位域的定义

在计算机的内存中是以字节为单元存储数据的,有些信息的存储,并不需要占用一个字节,只需要用一个或几个二进制位就够了,如性别用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;

三、位域的使用

位域的使用和结构体成员的使用相同,一般形式:

位域变量名.位域名

你可能感兴趣的:(c语言,开发语言)