测量普通变量
被测量 |
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