作者gn00618777 (非常念舊)
看板C_and_CPP
標題[問題] struct bit field
時間Thu May 19 23:33:38 2016
不好意思請問一下...我在網路上範例都是直接說出 struct 大小為 4 byte
struct {
unsigned int widthValidated : 1;
unsigned int heightValidated : 1;
} status;
請問有比較詳細的算法嗎?
我的想法是
總共兩個 bit ,但一次存取是 4 byte ,所以後面 padding 30 bit
求出大小為 4 byte
不知道我這樣想對不對....
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.110.72
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1463672022.A.2F5.html
1F:→ Caesar08: 因為C++規定,sizeof不能是0 05/19 23:48
2F:→ Caesar08: 既然不能是0,那最少也得是1 05/19 23:49
3F:→ Caesar08: 阿,對不起,我看錯題目了... 05/19 23:55
4F:→ bibo9901: 我以為這意思是: 只使用unsigned int 的 2 個bit ? 05/19 23:55
5F:推 dijkstra: 同上 05/20 01:03
6F:→ gn00618777: = = 那既然只用了 2 個 bit ,她怎出現 4 byte 呢? 05/20 05:32
8F:→ gn00618777: 那這樣我的想法應該是對的! 05/20 05:55
9F:→ Caesar08: 另外,我不是很懂為什麼需要知道bit field的大小 05/20 10:37
10F:→ Caesar08: bit field的實際大小是implementation-defined 05/20 10:42
11F:→ james1022jk: 他應該是想要知道bit field怎麼影響struct的大小 05/20 11:19
13F:→ gn00618777: 一句有解答到我的問題,那這樣一切都瞭了~! 05/20 18:33
14F:→ bibo9901: 所謂 implementation-defined 就是不同編譯器可能有不同 05/21 00:43
15F:→ bibo9901: 作法 05/21 00:43
16F:→ Caesar08: 他好像不是很懂甚麼是implementation-defined... 05/21 09:58