cpp中sizeof的总结

南楼画角 提交于 2020-01-28 02:08:23

测量普通变量

被测量 value
char 1
short 2
int 4
double 8
数组 数组内容个数+1(结尾有“\0”)
传入函数的数组 4,是一个指针,指向这个数组

测量类对象

被测量 value
1
char 1,字节对齐
short 2,字节对齐
int 4,字节对齐
double 8,字节对齐
普通函数 不占字节
几个虚函数 有一个指向虚函数表的指针,只占用一个指针,32位机器是4
静态成员变量 不占字节,共享同一个静态存储区,不在每一个实例中
一次虚拟继承 4,指向父类指针

测量联合体union

两点原则:
1. 等于占用空间最大的一个成员的大小;
2. 最大值需要字节对齐,等于最小成员的倍数

被测量 value
1
char 1
char[13] 13
short 2
int 4,字节对齐,安照union里面最小字节的倍数来对齐。
double 8,字节对齐,安装union里面最小字节的倍数来对齐。

参考推荐

参考来自《c++程序员面试秘笈》面试题13到面试题20。
关于计算机内存什么是代码区、常量区、静态区(全局区)、堆区、栈区,很好的一个博客推荐:
https://blog.csdn.net/u014470361/article/details/79297601

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!