【发布时间】:2013-05-04 10:49:20
【问题描述】:
位字段的字段部分似乎表明它们只能是结构或联合中的字段。
位域可以是典型的“独立”变量,在任何聚合数据类型(如联合或结构)之外,如下所示:
int sum:6; //Can this work as a declaration statement?
sum=4;
如果不是,为什么会这样?如果位域基本上是为了使用更少的内存,那么如果我们知道它不会超过那个大小,为什么我们不能将任何变量声明为位域呢?
【问题讨论】:
-
没有“独立”位域。这真的没有意义。您已经拥有所有可能大小的整数类型(例如
uint8_t),并且“使用更少的位”没有任何好处。当使用任何不是机器字大小的东西时,寻址很可能更慢。 -
@KerrekSB LOL,我通过评论得到了答案!
标签: c variables bit-fields