如:struct student位域是指信息在存储时, 而只需占几个或一个二进制位,并不需要占用一个完整的字节。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。C语言又提供了一种数据结构,为了节约存储空间,称作“位域”或“位段”,并使处理简便。每个域有一个域名,允许在程序中按域名进行操作。例如在存放在一个开关量时, 用一位二进位才可,只有0和1 两种状态。 并说明每个区域的位数,所谓“位域”是把一个字节中的二进位划分为几 个不同的区域。
位域的定义和位域函数的说明
位域定义
与结构定义相仿,其形式为
struct 位域结构名
{ 位域列表 }
其中位域列表的形式为: 类型说明符 位域名:位域长度。
例如
struct bs
{int a:8;int b:2;int c:6;}。
位域函数的说明
例如。与结构函数说明的方式完全相同。同时定义说明或者直接说明这三种方式, 可采用先定义后说明。
struct bs
{int a:8;int b:2;int c:6;}data。
共占2个字节,说明data为bs函数。其中位域a占8位,位域c占6位,位域b占2位。
位域定义的几点说明
对于位域的定义尚有以下几点说明
1. 宽度为 0 的一个未命名位域强制下一位域对齐到其下一type边界,其中type是该成员的类型。例如。
struct bs{