结构中位段的学习

    C中的结构,必须提到的是它实现位段的能力,位段的声明和结构类似,不同的是位段的成员是一个或多个位的字段,而这些不同的字段实际上存储与一个或多个整形变量中。

    位段的声明和任何普通的结构成员声明相同,但要记住以下两点的不同:

    1.位段成员必须为int,signed int ,unsigned int类型。

    2.在成员名后面是一个冒号(:)和一个整数,其中整数指定该位段所占有的数目。

      

    下面看一个位段声明的例子:

     struct test

     {

         unsigned ch   : 7;

         unsigned font: 6;

         unsigned size: 19;

     }a;

        这个声明在32位机上将根据下面两种可能来创建变量a;

       1.

       ch                         font                  size 

       |———————|——————|———————————————————|

       |———————|——————|———————————————————|                

       2.

       size                                                                       font                 ch

       |———————————————————|——————|———————|

       |———————————————————|——————|———————|                

 

       位段能把长度为奇数的数据包装在一起,节省了存储空间,也可以很方便的访问一个10整数值的部分内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值