c语言学习之路————位段

我们通过结构体来讲述位段

首先位段的声明和结构体是类似的

其实位段的成员是整型和字符型(也是特殊的整型)

这个结构体类型里的成员叫位段成员

一般位段成员都是相同类型,或是大小相似的类型

struct A//位段类型名
{
int a:2;//冒号后面加数字,是位段的一般形式
int b:4;
};

位段的位是二进制位,其意思是该成员要占据冒号后面的数字个比特位去表达你要存储的数据

位段的额内存方式:

位段的内存空间需要以4个字节或1个字节内存去开辟(整型和char)空间的

而上面位段就只需要四个字节就可以存放,其他的空间的就浪费了,其实已经节省空间了,如果按照结构体的内存方式来存a需要4个字节,存b又得开辟4个字节的空间,这无形之中就浪费了很多空间。

但位段有很多不确定因素:位段成员存储的内存空间是怎样提取使用,标准C没有定义

int位段是不是有符号位段;

而那些我们提到被浪费的空间,是真的要被舍弃,还是要被利用起来(当第一个位段成员的四字节空间的使用后的剩余空间而不够给第二个成员)

位段的应用:一般再网上传输数据时,我们要将数据压缩的很小,尽量让数据空间小一些,这样可以传输更多数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值