博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于结构体字节对齐的笔记
阅读量:4684 次
发布时间:2019-06-09

本文共 502 字,大约阅读时间需要 1 分钟。

1,空结构体的字节大小为:1;

2,含有static成员的结构体:sizeof 只算存栈中分配的空间大小,static成员存储在全局数据区内,故 static 成员变量不计算在内。

3,在默认对齐方式中,每种类型的存储开始地址是 能被该类型大小整除的地址。故:每次计算都假设结构体开始地址是 0;

4,遇到成员是结构体变量的:将此结构体变量当做一个数据类型,但是:

                              注意:

                                         千万不能把此结构体的 sizeof 当做该变量的类型大小

                                         也不能直接将此结构体拆解开

                              解法:

                                         此结构体成员变量的类型大小 理解为 该结构体成员变量的 成员中类型大小 最大的变量的大小,做字节对齐(第三步)

5,共用体:共用体的大小取决于成员的最大长度,但是共用体的大小应该是所有成员的整数倍,,不够就补齐

6,修改对齐方式:#pragma pack(n)

6,对于c++含有虚函数的类(结构体),不管有几个 都要考虑在该类(结构体)内存第一个字节加上一个 4字节变量(应为虚函数靠指向虚函数表的一个指针实现的)。

转载于:https://www.cnblogs.com/OrdinaryMiracle/p/4810497.html

你可能感兴趣的文章
文本元素
查看>>
各种可以远程
查看>>
对服务器的认识
查看>>
分治法实现1-N的数字按字典序全排列组合 Java语言
查看>>
序列化 与 反序列化
查看>>
购物车
查看>>
python基础(一)
查看>>
UI设计篇·入门篇·绘制简单自定义矩形图/设置按钮按下弹起颜色变化/设置图形旋转...
查看>>
linux 使用NSF 映射远程磁盘目录
查看>>
elasticjob 当当的分布式定时任务管理
查看>>
BZOJ 3438: 小M的作物( 最小割 )
查看>>
js性能优化-事件委托(2)
查看>>
Determine File Output Location
查看>>
51NOD 1068 Bash游戏 V3
查看>>
级联。。。
查看>>
socketserver用法列子
查看>>
网站链接被微信屏蔽拦截了怎么办?VJump帮你解除屏蔽
查看>>
SVG.text基本属性
查看>>
Sublime Text3配置Node.js开发环境
查看>>
在线编辑器的原理简单示例
查看>>