问一个C语言位字段的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:52:45
大家帮我看一下下面这个图所说的内容,
可是我在网站上所看到的是,不能超过一个字节的大小。。
而下面这个书上所说的是不能超过一个unsigned int的大小。那不是就是说不能超过四个字节的大小吗?
那位高手帮忙分析下。。谢谢了

你所给的书里面的说法是正确的。可以编个程序验证。

#include<stdio.h>
struct bf {
unsigned int a:9;
unsigned int :0;
unsigned int b:3;
}

void main() {
struct bf b1;
b1.a=257; /* 257占用9位 */
printf("%d\n",b1.a); /* 能正确输出257 */
getch();
}

还有,纠正一下一个错误,unsigned int的大小不一定是4个字节,也可能是2个字节啊。到底占用几个字节取决于所用的机器。