首页 > 系统相关 >自定义的结构的内存问题-字节对齐

自定义的结构的内存问题-字节对齐

时间:2023-11-26 17:12:05浏览次数:32  
标签:字节 自定义 int char 内存 对齐 结构

字节对齐

在写结构体时养成习惯,一定要按内存从小到大写,要不然在创建结构体的时候会导致创建的结构体明显的大。因为每创建一个结构体时,内存都需要对齐。
一般都是1,4,8的整数倍

//字符对齐时,字符可以和整数在一起,字符数组可以任意拆分。




struct A{
	char a; 	//1+3
	int b;  	//4
	double c;	//8
};
//原本sizeof(A) = 13,但是因为要字节对齐,char类型和int类型的合起来需要8个字节,所以sizeof(A) = 16
struct B{
	int a;		//4+4
	double b;	//8+0
	char c;		//1+7
};
//sizeof(B) = 24

结构体类型的对齐只需要把嵌套的结构体的类型移下来。

标签:字节,自定义,int,char,内存,对齐,结构
From: https://www.cnblogs.com/JiayongChen/p/17857558.html

相关文章

  • 自定义拷贝程序
    【一】需求介绍制作一个简易的文件拷贝程序【二】功能分析拷贝程序输入原始文件路径输入目标文件路径【三】代码实现#1.获取想要拷贝的文件路径source_file_path=input('请输入想要拷贝的文件路径>>>:').strip()#2.获取目标路径(到底拷贝到哪里)target_file_pat......
  • 自定义springboot-starter 动态数据源
    自定义springboot-starter动态数据源如果使用的是spring或springboot框架,spring提供了一个实现动态数据源的一个抽象类AbstractRoutingDataSource当我们实现这个类后需要实现一个方法@OverrideprotectedObjectdetermineCurrentLookupKey(){}spring获取连接代码最终会......
  • C语言自定义数据类型-结构体
    在讨论自定义数据类型之前,我们不妨先回忆一下C语言的内置类型。例如字符型的char,整型中的intshortlong以及浮点型的floatdouble,这些都会C语言本身提供的数据类型,但仅仅有这些,是不足以满足我们的开发的。那么也就意味着需要一些复杂类型来帮助我们实现对复杂对象的操作,例如结构......
  • Hive学习路线-自定义函数
    九、自定义函数1.查看系统提供的函数列表showfunctions;2.查看具体某一个函数的描述信息descfunction[extended]函数名称;3.自定义函数Userdefinedfunction/UDF3.1创建一个java项目,导入hive的libs3.2创建类,继承org.apache.hadoop.hive......
  • el-table 字段自定义排序
    我在element-ui中使用el-table排序,默认开启就是el-table-column上加个sortable即可,但是后端返回的数据中含有中文列如tableData中有个字段count对应值是类似 13,6,2,3,4,5,10以上,7,含有中文‘以上’两个字,这个时候自带的排序已经无法满足我的要求,所以需要增加该列的自定义排......
  • 爱芯元智AX650N部署yolov8s 自定义模型
    爱芯元智AX650N部署yolov8s自定义模型本博客将向你展示零基础一步步的部署好自己的yolov8s模型(博主展示的是自己训练的手写数字识别模型),本博客教你从训练模型到转化成利于Pulsar2工具量化部署到开发板上训练自己的YOLOv8s模型准备自定义数据集数据集结构可以不像下面一样,......
  • C语言【自定义数据类型、typedef、动态内存分配】
    C语言【自定义数据类型、typedef、动态内存分配】一、自定义数据类型。​ 关于下面讲到的所有自定义数据类型(enum、struct、union),有一点要说的是:定义类型不是声明变量,做这步操作时不分配内存,也不能在定义类型时赋值(枚举那个不是赋值,是做一个限定,赋值时赋限定之外的值也不报错。)......
  • 使用druid自定义拦截器
         使用druid自定义的拦截器StatFilter,是可以通过日志进行慢sql打印的。但是如果想要把慢sql放入DB,或者通过钉钉告警的方式进行实时打印,则需要实现自定义的拦截器。     第一步:重新自定义拦截器    packagecom.example.demo.filter;importcom.a......
  • Service 服务详解 及自定义服务模板
    文章目录1、服务简介2、服务的生命周期1)Service的启动停止2)、服务的生命周期的方法3、使用startService启动后服务的生命周期1)、文件结构2)activity_main.xml文件3)、myService自定义服务文件4)、MainActivity文件5)、AndroidManifest.xml文件6)、打印的相关log5、使用bindS......
  • 字节2面真题,你能答对几道?
    字节跳动的面试难度,放眼整个互联网都是“遥遥领先”!不能说有多难,就是看了都不会的哪种!当然,这句话是开玩笑的。咱们先来看下字节二面的所有问题:前半部分的问题比较简单,相信大部人都能搞定(如果你搞不定,可以偷偷去看磊哥的武林秘籍:https://www.javacn.site)。本文咱们就挑两个比较......