Possible Duplicate:
Why isn't sizeof for a struct equal to the sum of sizeof of each member?
我随机创建了一个 Struct,它的大小让我感到惊讶,因为结果不等于我的计算:
int main( int argc, char ** argv ) {
struct S
{
int i;
int b;
int c;
long int e;
};
cout << sizeof (struct S) << endl; //sizeof is still an operator
return 0;
}
通常情况下,3*int + 1*long int = 3*4 + 8 = 20。
但是,结果是 24。
这4个字节是从哪里来的?
最佳答案
您的struct
填充了四个字节,大概是为了将long int
放置在8字节边界上以加快对其的访问速度。这与平台相关:并非所有编译器都会添加这些字节。
关于c++ - 该结构的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625244/