[問題] sizeof struct

看板C_and_CPP作者 (鄉園http://0rz.tw/n2Wg1)時間13年前 (2011/01/05 12:10), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/2 (看更多)
開發平台(Platform): dev-c 4.9.9.2 小弟最近突發奇想 想來算一算struct占了多少byte 卻發現一個自己不明白的結果 上來板上請教各位大大 struct abc{ char a; int aa; }temp; 此時 sizeof(temp) = 8 這個8沒有問題 但若將結構改成 struct abc{ char a; int aa:5; }temp; sizeof(temp) 卻變成了 4 知道的朋友可以麻煩您跟我說原因嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.14.178

01/05 12:18, , 1F
#1D8XT4K- (C_and_CPP) [ptt.cc] [問題] C++ sizeof 的
01/05 12:18, 1F

01/05 12:18, , 2F
看一下這篇的推文
01/05 12:18, 2F
※ 編輯: S4snow 來自: 140.120.14.178 (01/05 12:22)

01/05 12:36, , 3F
唯一可以確定的只有→「絕對不會是0」
01/05 12:36, 3F

01/06 00:02, , 4F
大概是bitfield的對齊實作方式不同, 用VC2005去測的結
01/06 00:02, 4F

01/06 00:02, , 5F
果一樣是 8 不是 4 ....@_@"
01/06 00:02, 5F

01/06 09:46, , 6F
感謝樓上 剛剛用vc2008測了是8 看來dev-c可以收起來了= =
01/06 09:46, 6F

01/07 00:08, , 7F
看您要不要找新一點的gcc換去用, 除非C/C++ spec有明定,
01/07 00:08, 7F

01/07 00:09, , 8F
不然只要結果符合你程式的設計(即aa確實佔獨立5 bit),
01/07 00:09, 8F

01/07 00:09, , 9F
那麼其實好像也不能說你DevC的結果4 byte一定是錯的;
01/07 00:09, 9F

01/07 00:09, , 10F
雖然個人覺得確實有比DevC更好用且仍在維護的IDE能用XD
01/07 00:09, 10F
文章代碼(AID): #1D8-ykDM (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1D8-ykDM (C_and_CPP)