C++类 内存对齐和类大小理解
来源:互联网 发布:国产网络腐剧 编辑:程序博客网 时间:2024/06/15 07:22
首先,默认的块对齐长度是4字节,此外也可以通过#pragma pack(x)修改,同时,自己修改完之后记得使用#pragma pack()恢复默认值。此外,又分了几种情况:
(1)如果有虚函数,则会存储虚函数表的地址(仅一个地址,4字节或8字节),该地址是存放在类内存的最开始的地方。
(2)如果出现比x大的非静态成员变量(静态成员变量不算在类内存里面,而是和函数放在一起的),则对齐长度取较大类型的尺寸值。
(3)所有成员变量之间的先后位置不受虚函数影响,而且存储的先后位置和定义变量时的先后顺序是一样的(这样似乎就可以通过调整成员变量定义的先后顺序来节省内存啦)。
(4)所有变量的存储地址都是该变量类型的尺寸的整数倍。
(1)如果有虚函数,则会存储虚函数表的地址(仅一个地址,4字节或8字节),该地址是存放在类内存的最开始的地方。
(2)如果出现比x大的非静态成员变量(静态成员变量不算在类内存里面,而是和函数放在一起的),则对齐长度取较大类型的尺寸值。
(3)所有成员变量之间的先后位置不受虚函数影响,而且存储的先后位置和定义变量时的先后顺序是一样的(这样似乎就可以通过调整成员变量定义的先后顺序来节省内存啦)。
(4)所有变量的存储地址都是该变量类型的尺寸的整数倍。
阅读全文
0 0
- C++类 内存对齐和类大小理解
- C++类 内存对齐和类大小理解
- C++ 内存对齐及空类大小
- C-内存地址对齐及大小端
- C/C++结构体和类中的内存对齐
- 大小端、位段和内存对齐
- 结构体对齐和类的大小
- C++测试类大小中的内存对齐问题
- 关于C++测试类大小中的内存对齐
- C++类空间大小关于内存对齐的学习
- sizeof详解、类的大小、内存对齐、位域
- C++ 类的大小 struct/class内存对齐问题
- C语言 内存对齐的理解
- 深入理解C/C++内存对齐
- c语言中结构体的大小和内存对齐问题
- c语言中结构体的大小和内存对齐问题
- C语言结构体的大小——内存对齐和位域的使用
- C++类的内存对齐-C++alignment
- jquery使用积累
- LeetCode_001 求两个数的和
- 总结Android Socket开发中可能遇到的问题
- ac自动机讲解
- 一个简单的Makefile
- C++类 内存对齐和类大小理解
- 兼容CommonJS
- linux—TCP_server端编写之利用select()函数编写可多用户同时访问
- MySQL笔记六
- PythonWebCrawler-模拟浏览器爬取信息
- ios 运行微信支付demo报错
- 【STL-deque】双向队列
- Linux下的多进程编程初步
- MySQL笔记七