我有一個結構,我寫了下面的代碼來打印結構的大小。 儘管我期待「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