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

字节对齐

在写结构体时养成习惯,一定要按内存从小到大写,要不然在创建结构体的时候会导致创建的结构体明显的大。因为每创建一个结构体时,内存都需要对齐。
一般都是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

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

posted @   别抢我的零食  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示