看板 C_and_CPP 關於我們 聯絡資訊
請問一下一個Struct大小的問題,第一個Struct如下面宣告 先宣告char,再宣告int,最後宣告double,得出的大小為16 這感覺比較沒問題。 但如果像struct2這樣宣告,只是把某個char的宣告放到int之下 則得出大小為24,請問這二者的作法有什麼差別嗎? Struct 1 Struct 2 struct newtype { struct newtype { char t; char t; char tt; char tt; char tttt; int ttt; int ttt; char tttt; double b; double b; }abc; }abc; cout<<sizeof(abc); cout<<sizeof(abc); 輸出結果為 16 輸出結果為 24 了解了,謝謝回應 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.158.148 ※ 編輯: vito0302 來自: 203.70.158.148 (04/20 13:00) ※ 編輯: vito0302 來自: 203.70.158.148 (04/20 13:00)
littleshan:請 google 找 data structure alignment 04/20 13:01
VictorTom:compiler替struct member做data alignment的結果.... 04/20 13:02
VictorTom:如果St 1您認為16是合理的, 那St 2應該算得出24才對:) 04/20 13:03
VictorTom:喵的, 為什麼小弟的推文總是會慢人家半拍呢....>_<# 04/20 13:04
ledia:慈(遲)來大師你好 XD 04/20 13:20
※ 編輯: vito0302 來自: 203.70.158.148 (04/20 13:38) ※ 編輯: vito0302 來自: 203.70.158.148 (04/20 14:01)
VictorTom:汪>_<# 其實因為我是Debug版的所以才會慢一點....Q_Q~ 04/20 14:02