当前位置: 首页 > news >正文

上海企业网站设计公司电话孝义网站开发

上海企业网站设计公司电话,孝义网站开发,网站提供的链接,南京网站改版C语言之位段 文章目录 C语言之位段1. 位段的介绍2. 位段的内存分配3. 位段跨平台问题4. 位段的应用5. 位段使用注意 1. 位段的介绍 位段#xff08;bit-field#xff09;是C语言中的一种特殊数据类型#xff0c;它允许将一个字节分成几个部分#xff0c;并为每个部分指定特…C语言之位段 文章目录 C语言之位段1. 位段的介绍2. 位段的内存分配3. 位段跨平台问题4. 位段的应用5. 位段使用注意 1. 位段的介绍 位段bit-field是C语言中的一种特殊数据类型它允许将一个字节分成几个部分并为每个部分指定特定的位数以便在内存中存储和访问这些部分。 其中位段相较于结构体有两特殊点 位段的成员必须是 int unsigned int或 signed int char整型家族 在C99中位段的成员也可以是其他类型位段的成员名后跟一个冒号和数字 例如 struct A {int a : 5;signed int b : 6;unsigned int c : 10;//int d : 40; 超出了int类型最大的大小 };数字的含义表示占多少bit位的大小且设置的大小不能超过原类型最大的大小例如int 为 4 字节设置的数字就不能超过 32 bit 2. 位段的内存分配 1.位段的成员可以是int unsigned int signed int 或者是 char 等类型 2.位段的空间上是按照需要以4个字节 int 或者1个字节 char 的⽅式来开辟的 3.位段涉及很多不确定因素位段是不跨平台的注重可移植的程序应该避免使⽤位段 例子 struct S {char a : 3;char b : 4;char c : 5;char d : 4; }; int main() {struct S s { 0 };s.a 10;s.b 12;s.c 3;s.d 4;printf(%zd, sizeof(s));return 0; }代码运行结果: 3 在VS2022中位段中的成员是从右向左分配空间的如果遇到不足位段成员大小的空间则直接丢弃在开辟一个字节的空间分配 在内存中 第一个字节为 0110 0010 转为十六进制为 62 第二个字节为 0000 0011 转为十六进制为 03 第三个字节为 0000 0100 转为十六进制为 04 3. 位段跨平台问题 int 位段被当成有符号数还是⽆符号数是不确定的。位段中最⼤位的数⽬不能确定。16位机器最⼤1632位机器最⼤32写成27在16位机器会出问题。位段中的成员在内存中从左向右分配还是从右向左分配标准尚未定义。当⼀个结构包含两个位段第⼆个位段成员⽐较⼤⽆法容纳于第⼀个位段剩余的位时是舍弃剩余的位还是利⽤这是不确定的。 在C语言中规定int类型的有无符号是由编译器决定的但它必须至少能存下-32767~32767的值 int类型在16位机器上是2个字节的这是你位段分配了超过16bit时就会有问题 位段内存分配没有明确规定取决于编译器不同编译器实现的方式不同。在VS2022中位段成员是从右往左分配内存的并且如果遇到一个字节中的内存不够时则会抛弃剩余内存重新开辟一个字节的内存再分配 跟结构相⽐位段可以达到同样的效果并且可以很好的节省空间但是有跨平台的问题存在 4. 位段的应用 一下是IP数据报的格式图 在上述图片中可以看到有些数据只需几bit的内存空间位段允许几个数据类型合并在一起节约了存储内存⽹络传输的数据报⼤⼩也会较⼩⼀些对⽹络的畅通是有帮助的 5. 位段使用注意 位段允许几个小的数据类型合并在一起这样有的成员的起始位置就不是某个字节的起始位置在内存中为每个字节分配一个地址一个字节内部的 bit位 是没有地址 TIPS不能对位段中的某个成员使用操作符 既然不能使用操作符那么怎么对位段中的成员赋值呢 可以值存入一个变量中再将变量的值赋给位段中的成员 #include stdio.hstruct S {char a : 5;int b : 16; }; int main() {struct S s { 0 };//scanf(%d, s.a); 这是错误的//正确示范int n 0;scanf(%d, n);s.a n;return 0; }
http://www.yutouwan.com/news/6585/

相关文章:

  • 做语文题的网站住房和城乡建设部网站造价
  • 网页建站建设教程wplounge wordpress主题
  • 广州网站推广软件做调查的网站‘
  • 建网站麻烦吗成都哪家做网站好
  • 手机网站设置培训心得体会100字
  • 网页设计的优缺点济南关键词优化费用情况
  • 深圳网站建设品牌网站建设维护的职位
  • 常州交通建设管理有限公司网站doc导入wordpress
  • 企业网站优化工具做空间的网站吗
  • 医院网站建设报价南宁网站建站推广
  • 好网站推理最好的网站管理系统
  • 青岛网站制作价格做网站用建站模版好还是定制好
  • 建设一个网站需要北京建设信息网站
  • 网站首页设计尺寸做网站的软件多少钱
  • 英文专业的网站设计跨境电商app
  • 广府网站建设加入网站帮忙做网站
  • 做电商网站前期做什么工作详细论述制作网站的步骤
  • 做家政有专门的网站吗wordpress开源博客
  • 分析网站网站代刷网站只做软件下载
  • 郑州网站推广怎么做中国电信网站备案 密码重置
  • 电商网站建设代码大全wordpress连接微信支付
  • dedecms建手机网站流程wordpress常规地址改错了怎么办
  • 最经典最常用的网站推广方式是微信小程序官网
  • 医院网站做品牌推广需要哪些国际 网站制作公司
  • wordpress索引wordpress优化网站
  • 网站没有地图怎么做的有没有专门做标书的网站
  • 网站开发浏览器兼容手机上怎么上传网站
  • 创建网站的准备莱州网站建设
  • 美食网站页面设计模板有什么做h5的网站
  • 常州网站建设seo阿里云 wordpress博客