[问题] struct bit field

楼主: gn00618777 (非常念旧)   2016-05-19 23:33:38
不好意思请问一下...我在网络上范例都是直接说出 struct 大小为 4 byte
struct {
unsigned int widthValidated : 1;
unsigned int heightValidated : 1;
} status;
请问有比较详细的算法吗?
我的想法是
总共两个 bit ,但一次存取是 4 byte ,所以后面 padding 30 bit
求出大小为 4 byte
不知道我这样想对不对....
感谢
作者: Caesar08 (Caesar)   2016-05-19 23:48:00
因为C++规定,sizeof不能是0既然不能是0,那最少也得是1阿,对不起,我看错题目了...
作者: bibo9901 (function(){})()   2016-05-19 23:55:00
我以为这意思是: 只使用unsigned int 的 2 个bit ?
作者: dijkstra (邪恶数学家)   2016-05-20 01:03:00
同上
楼主: gn00618777 (非常念旧)   2016-05-20 05:32:00
= = 那既然只用了 2 个 bit ,她怎出现 4 byte 呢?http://goo.gl/IgVVpP那这样我的想法应该是对的!
作者: Caesar08 (Caesar)   2016-05-20 10:37:00
另外,我不是很懂为什么需要知道bit field的大小bit field的实际大小是implementation-defined
作者: james1022jk (雁)   2016-05-20 11:19:00
他应该是想要知道bit field怎么影响struct的大小
楼主: gn00618777 (非常念旧)   2016-05-20 18:33:00
是的,我是想知道大小。http://goo.gl/zl5D7q 它的第一句有解答到我的问题,那这样一切都了了~!
作者: bibo9901 (function(){})()   2016-05-21 00:43:00
所谓 implementation-defined 就是不同编译器可能有不同作法
作者: Caesar08 (Caesar)   2016-05-21 09:58:00
他好像不是很懂什么是implementation-defined...

Links booklink

Contact Us: admin [ a t ] ucptt.com