说明:暑假中看书想到的一点东西,因当时没有电脑,无法验证,所以到学校后验证一下才发。
先看一个例子,有三个结构体的定义如下:
struct a
{
bool b1;
bool b2;
int i1;
int i2;
int i3;
};
struct b
{
int i1;
int i2;
int i3;
bool b1;
bool b2;
};
struct c
{
int ii1;
bool bb1;
int ii2;
bool bb2;
int ii3;
};
对于上面定义的两个结构体,考虑下面的两个问题:
1.三个结构体大小的理论值和实际值各是多少?
2.三个结构体所占的内存空间大小(实际所占非理论值)是否相同?为什么?
对于1我们很容易得出结果,三个结构体大小的理论值都是14。因为在32位的系统中int的大小是4byte,bool的大小为1byte,而结构体的大小为各元素所占大小的和,所以理论值为14,至于实际大小我们也可以很容易的得到:
#include<iostream>
using namespace std;
int main