用测试程序分析类的内存布局2
2013-04-15 15:04
260 查看
下列代码:
我的编译环境是VC 6.0 WIN XP 32位.
输出结果如下:
关于这个结果解释如下:
32位的操作系统要进行4字节对齐,也就是说,如果使用空间不足4字节,则要将其布满为4字节。
第一个int,它占用四个字节,第二个char占用一个字节,第三个int占用四个字节。按照四字节规定,第二个char应该被补满四个字节。
所以,前三个member就占用了12个字节了。
剩下两个char占用两个字节,同样补满两个字节,所以就占用四个字节。总共就占用了16个字节。
#include <iostream> using namespace std; class Test { public: int a; char b;//注释掉试试 int c;//注释掉试试 char d; char e; }; void main() { cout << sizeof(Test) << endl; }
我的编译环境是VC 6.0 WIN XP 32位.
输出结果如下:
关于这个结果解释如下:
32位的操作系统要进行4字节对齐,也就是说,如果使用空间不足4字节,则要将其布满为4字节。
第一个int,它占用四个字节,第二个char占用一个字节,第三个int占用四个字节。按照四字节规定,第二个char应该被补满四个字节。
所以,前三个member就占用了12个字节了。
剩下两个char占用两个字节,同样补满两个字节,所以就占用四个字节。总共就占用了16个字节。
相关文章推荐
- 用测试程序分析类的内存布局1
- .NET程序内存分析工具CLRProfiler的使用(性能测试)
- NET程序内存分析工具CLRProfiler的使用(性能测试)
- 一个Linux C进程内存布局的验证程序的分析
- 内存测试Stream程序分析
- 程序测试C程序内存空间布局
- .NET程序内存分析工具CLRProfiler的使用(性能测试)
- .NET程序内存分析工具CLRProfiler的使用(性能测试)
- C++程序运行时内存布局之----------this到底是什么?
- JAVA 程序执行过程中的内存分析。
- 【iOS测试系列】instruments工具的使用(一)- 通过leaks分析内存泄露
- 一个测试ACE各种内存分配策略效率的程序
- C语言编程-----程序的内存布局
- Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
- C程序-进程内存结构分析
- linux&nbsp;下&nbsp;C&nbsp;程序(进程)&nbsp;内存布局
- 一次由于内存问题程序被kill的测试 (2)
- 程序内存空间布局以及对栈顶,栈底的理解
- C程序的内存布局
- 通过编写Python小程序来统计测试脚本的关键字分析 20160328