#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 },4
和8
?
为什么编译器不一致,并且不会为16
和14
打印char name[10];
。仅int age;
仅10
(当我发表评论char name[10];
时)