C++内存对齐 & 基本类型占用字节数

2018-03-26  本文已影响0人  shu2man

各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。各成员变量在存放的时候根据在结构中出现的顺序依次申请空间,同时按照上面的对齐方式调整位置,空缺的字节自动填充。同时为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍数,所以在为最后一个成员变量申请空间后,还会根据需要自动填充空缺的字节。

#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;
}
上一篇 下一篇

猜你喜欢

热点阅读