结构体在内存中的存储方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体在内存中的存储方式相关的知识,希望对你有一定的参考价值。
结构体在内存中如何存储?
遵循结构体对齐规则:
1.首先要知道默认对齐数:VS 中 8 Linux 中4
2.第一个成员放到0偏移处
3.后面所有的成员都放到对齐数(本身和默认对齐数的较小值)的倍数处偏移
4.结构体总大小为所有对齐数中最大对齐数的倍数
Eg:
运行结果为 24
图中可以看出内存有浪费,而我们将小的成员放一起可以节省资源 减少浪费。
上例可以改为:
int i;
char c;
double d;
这样总大小只需16 节省浪费。
空的结构体类型大小为1,创建对象需要开辟空间,开多了浪费,不开没法寻址,而内存的最小单位是一个字节,所以开1个.
那么结构体为什么要对齐呢?
如图 红色方式读取b时需要读取两次
绿色方式只需读取一次
用内存来换取时间。
本文出自 “10910765” 博客,请务必保留此出处http://10920765.blog.51cto.com/10910765/1745792
以上是关于结构体在内存中的存储方式的主要内容,如果未能解决你的问题,请参考以下文章