位域(c语言)

位域

有些信息存储时  并不需要 占用一个完整的字节 而只占领一部分
为了节省空间 让处理方便    c就提供了叫  位域 的数据结构
 位域就是把 一个字节分为不同的区域  并说明每个区域的位数  每个区域都有自己的名字

位域定义
形式  
struct 位域结构名
{
   位域列表         (      type [member_name] : width;)
};
type    只能为int  、 unsigned int  、     signed int  三种形式    决定如何解释位域的值
member_name   位域的名称
width  位域中位的数量  宽度必须小于或等于指定类型的位宽度

带有预定定义宽度的变量被称为位域
struct
{
unsigned int age : 3;
} age;
age变量只使用3位来存储这个值  如果超过3位 则无法完成
      如果超过 会有警告  输出为零

说明  
一个位域存储在同一个字节中   如果不够存放   从下一个单元存放位域
位域宽度不能超过他所依附的数据类型的长度
位域可以是无名位域  这时他只用作填充或调整位置  无名位域不能使用


位域的使用
 位域变量名。位域名
 位域变量名-》位域名
            位域允许 用各种格式输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值