各成員變量存放的起始地址相對于結(jié)構(gòu)的起始地址的偏移量必須為該變量的類型所占用的字節(jié)數(shù)的倍數(shù)言询。各成員變量在存放的時候根據(jù)在結(jié)構(gòu)中出現(xiàn)的順序依次申請空間,同時按照上面的對齊方式調(diào)整位置,空缺的字節(jié)自動填充妆毕。同時為了確保結(jié)構(gòu)的大小為結(jié)構(gòu)的字節(jié)邊界數(shù)(即該結(jié)構(gòu)中占用最大空間的類型所占用的字節(jié)數(shù))的倍數(shù),所以在為最后一個成員變量申請空間后,還會根據(jù)需要自動填充空缺的字節(jié)抡驼。
#include<iostream>
using namespace std;
int main(){
cout<<"The Size of Primary Data Types Are:(byte)\n";
cout<<"double:"<<sizeof(double)<<endl;//8
cout<<"long: "<<sizeof(long)<<endl; //4
cout<<"float: "<<sizeof(float)<<endl; //4
cout<<"int: "<<sizeof(int)<<endl; //4
cout<<"short: "<<sizeof(short)<<endl;//2
cout<<"char: "<<sizeof(char)<<endl; //1
cout<<"bool: "<<sizeof(bool)<<endl; //1
return 0;
}