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

自定义类型-结构体(二)

结构体内存对齐

偏移量

指的是结构体中某个成员相对于结构体起始地址的字节距离

第一个成员的起始位置为0,一个字节表示一个单位

这里的数字表示的是该成员地址与结构体首地址之间的值

对齐规则

1.结构体第一个成员的第一个字节的偏移量为0

2.其余成员变量要对⻬到某个数字(对⻬数)的整数倍的地址处

对齐数:编译器有一个默认的对齐数,这个数与成员变量的的大小进行对比,小的一方为该成员变量的对齐数

其余成员的变量要存储在对齐数的整数倍

例:第一个为char类型大小为1,第二个为int 大小为4个字节,第二个成员的对齐数是4(4比8小),因此存放的位置是4的倍数,因为第一个成员的大小为1,没有超过4,所以存放的位置为偏移量4

3.结构体的总体的大小,必须是最大对齐数的整数倍

以上述的例子为例

在设置第三个成员变量,char,大小为1字节,根据第二个规则,偏移量为8,因为最大的对齐数是4,而三个成员变量所使用的字节长度为9(以0开始计算),所以4的倍数8,就不能使用,只能使用12,因此该结构体的总体大小为12字节

4.当嵌套了结构体时结构体的总体大小是所以结构体的最大对齐数的倍数

http://www.xdnf.cn/news/380539.html

相关文章:

  • 基于ssm的超市库存商品管理系统(全套)
  • Vue.js框架的优缺点
  • 2025年PMP 学习六 -第5章 项目范围管理 (5.1,5.2,5.3)
  • ubunut20.04 安装运行lvi-sam
  • JavaSE核心知识点02面向对象编程02-05(方法)
  • 【比赛真题解析】混合可乐
  • 翻转数位题目解释和代码
  • C语言复习--动态内存管理
  • 同步、异步、并发的区别
  • Python与YOLO:自动驾驶中的实时物体检测
  • comfyui 如何优雅的从Hugging Face 下载模型,文件夹
  • 2025年特种作业操作证考试题库及答案(登高架设作业)
  • AST(抽象语法树)与 HBO(基于历史的优化)详解
  • 使用 Jackson 在 Java 中解析和生成 JSON
  • Spring事务管理实现机制
  • Windows右键管理工具:轻松添加/删除/修改右键菜单项!
  • xml与注解的区别
  • 机器学习 day01
  • 如何更改typora图片存储位置
  • 将一张100 元的钞票换成1 元、2元、5 元和10 元的零钱,每种零钞至少一张
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解
  • C. scanf 函数基础
  • Linux--JsonCpp
  • 【C++】内存管理
  • Lettuce 节点刷新、连接优化与 Spring 升级适配全解析:从环境约束到生产验证
  • printf调试时候正常,运行时打印不出来
  • spring响应式编程系列:异步消费数据
  • springboot3+vue3融合项目实战-大事件文章管理系统-更新用户信息
  • MGP-STR:用于场景文本识别的多粒度预测
  • 【Vulkan 入门系列】创建和配置描述符集,创建同步对象(九)