我有一个结构,我写了下面的代码来打印结构的大小。 尽管我期待“6”,但我得到“8”作为结构的大小。 sizeof(int)+ sizeof(char)+ sizeof(char)= 4 + 1 + 1 = 6.如果我评论结构的int部分,我会得到理想的结果(即结构的大小为2)计算sizeof结构
I还打印出来的int的大小即将到来4.
typedef struct example
{
int one;
char two;
char three;
}example;
int main()
{
printf("value %d %d ",sizeof(example),sizeof(int));
}
这是由于对齐,你的结构是4字节对齐。 http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member – birryree 2013-05-03 16:47:29
因此,你可以放心地把结构放入一个数组和'int'成员将被正确对齐。 – Bill 2013-05-03 16:50:45