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

结构体对齐,位段

大家好,今天来给大家分享一些结构体的知识,结构体是我们学习数据结构的基础,只有把它了解清楚才能让我们学习数据结构是得心应手,现在让我们来看看它的一些内容吧。

1.结构体的定义和调用我们就跳过吧 大家如果还不熟悉的话可以去查阅资料,这个是书面知识我们就不多说。

2.结构体对齐

大家肯定会好奇结构体的空间是多大吧?是不是所有类型空间的总和呢?答案是不对,我们结构体引入了一个概念,就是结构体对齐,它有这样一些计算方法:

1.第一个成员在与结构体变量偏移量为0的地址处。

2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数=编译器默认的一个对齐数与该成员大小的较小值。。 VS中默认的值为8.

3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。

4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。

下面给大家分享一些结构体,大家可以去算一算

228c156b6e0449dba59d490795d536a2.png

2.结构体位段 

2.位段的空间上是按照需要以4个字节(int)或者1个字节(char)的方式来开辟的。 1.位段的成员可以是int unsigned int signed int或者是char(属于整形家族)类型

2.4位段的应用 3.位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段。

再给大家分享一道位段的题目,大家有兴趣也可以算一算

de9c25a392dc41c19a6632e06387c7dd.png

好了,今天分享就到这里,谢谢大家!

102e7d2a225b4c54bcd0965fde5ec6ac.png 

 


http://www.kler.cn/a/379733.html

相关文章:

  • 细谈 Linux 中的多路复用epoll
  • MySQL45讲 第十四讲 count(*)这么慢,我该怎么办?
  • sparkSQL面试题
  • Linux curl命令下载显示时间/速度/大小
  • 大数据之Hadoop集群
  • 解决 ClickHouse 高可用集群中 VRID 冲突问题:基于 chproxy 和 keepalived 的实践分析
  • 支持 Mermaid 语言预览,用通义灵码画流程图
  • centos7 kafka高可用集群安装及测试
  • 【Git】SSH密钥
  • json和pb的比较
  • 第八篇: 通过使用Google BigQuery进行数据批量和自动化处理
  • 【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。
  • unity游戏开发之--人物打怪爆材料--拾进背包的实现思路
  • 如何实现PHP安全过滤
  • AI赋能财务管理,AI技术助力企业自动化处理财务数据
  • .NET 开发人员实用NuGet 包,加快开发速度
  • 【深度学习】多分类任务评估指标sklearn和torchmetrics对比
  • 策略模式(C++)三分钟读懂
  • Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
  • Java项目实战II基于Java+Spring Boot+MySQL的编程训练系统(源码+数据库+文档)
  • Windows密码的网络认证---基于挑战响应认证的NTLM协议
  • asynDriver-6-端口驱动
  • MQTT自动发送消息工具(自动化测试MQTT)
  • R语言贝叶斯:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析
  • 黑马官网最新2024前端就业课V8.5笔记---CSS篇(2)
  • 家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)