为什么我的Person的大小是10个字节,而不是16个?

时间:2016-10-04 10:19:04

标签: c++ class visual-studio-2015 size

#include <iostream>
#include <cstring>

using namespace std;

class Person {
    char name[10];
    int age;
};

int main(void) {
    const size_t size = sizeof(Person);
    cout << size << endl;
    system("PAUSE");
    return 0;
}

输出是: 16这没关系,因为Visual Studio 2015编译器将10个字节(char [10])四舍五入为16。如果我注释掉int age;行,则输出为10(是否为舍入值2 + 8?)如果编译器将值舍入为2,则为什么不是16,{{1 },48

为什么编译器不一致,并且不会为1614打印char name[10];。仅int age;10(当我发表评论char name[10];时)

0 个答案:

没有答案