[問題] 請問一個關於結構大小的問題

看板C_and_CPP (C/C++)作者 (選擇!!)時間16年前 (2009/04/20 12:59), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
請問一下一個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)

04/20 13:01, , 1F
請 google 找 data structure alignment
04/20 13:01, 1F

04/20 13:02, , 2F
compiler替struct member做data alignment的結果....
04/20 13:02, 2F

04/20 13:03, , 3F
如果St 1您認為16是合理的, 那St 2應該算得出24才對:)
04/20 13:03, 3F

04/20 13:04, , 4F
喵的, 為什麼小弟的推文總是會慢人家半拍呢....>_<#
04/20 13:04, 4F

04/20 13:20, , 5F
慈(遲)來大師你好 XD
04/20 13:20, 5F
※ 編輯: vito0302 來自: 203.70.158.148 (04/20 13:38) ※ 編輯: vito0302 來自: 203.70.158.148 (04/20 14:01)

04/20 14:02, , 6F
汪>_<# 其實因為我是Debug版的所以才會慢一點....Q_Q~
04/20 14:02, 6F
文章代碼(AID): #19x04vyu (C_and_CPP)
文章代碼(AID): #19x04vyu (C_and_CPP)