語言是C,gcc編譯sizeof操作符返回奇怪結果
如果我像這樣
struct test {
char item_1[2];
char item_3[4];
char item_4[2];
char item_5[2];
char item_6[4];
};
一個結構,我做的sizeof(結構測試)返回14(字節)。這是預期的結果。
,但如果我這樣做
struct test {
int16_t item_1;
int32_t item_3;
int16_t item_4;
int16_t item_5;
int32_t item_6;
};
的sizeof(結構測試)當我調試使用GNU DDD將返回喜歡44一些奇怪的事情,我可以在結構內部看,看到這一切看起來正常,所有項目都預期的字節數。
那麼爲什麼sizeof運算符返回一個意外的值?
int16_t [2] = 4字節* 3 = 12個字節; int32_t [4] = 16字節* 2 = 32字節; 12 + 32 = 44. – Jon