永发信息网

帮我解释一下这个结构体?

答案:5  悬赏:80  手机版
解决时间 2021-12-01 20:15
帮我解释一下这个结构体?
最佳答案
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
unsigned char b8:1;
unsigned char b9:1;
unsigned char b10:1;
unsigned char b11:1;
unsigned char b12:1;
unsigned char b13:1;

unsigned char b14:1;
unsigned char b15:1;
每个都占一位```若不够放存入下个字节中··
1共占2个字节``

:1是按位存储·


struct xxx
{
成员 1 类型成员 1 : 成员 1 位数 ;
成员 2 类型成员 2 : 成员 2 位数 ;
成员 3 类型成员 3 : 成员 3 位数 ;
};
基本的成员变量就会被拆分!这个语法在初级编程中很少用到,但是在高级程序设计中不断地被用到!例如:
struct student
{
unsigned int sex : 1;
unsigned int age : 15;
};
上述结构体中的两个成员 sex 和 age 加起来只占用了一个 unsigned int 的空间(假设 unsigned int 为 16 位)。
基本成员变量被拆分后,访问的方法仍然和访问没有拆分的情况是一样的,例如:
struct student sweek;
sweek.sex = MALE;// 这里的 MALE 只能是 0 或 1 ,值不能大于 1
sweek.age = 20;
虽然拆分基本成员变量在语法上是得到支持的,但是并不等于我们想怎么分就怎么分,例如下面的拆分显然是不合理的:
struct student
{
unsigned int sex : 1;
unsigned int age : 12;
};
这是因为 1+12 = 13 ,不能再组合成一个基本成员,不能组合成 char 、 int 或任何类型,这显然是不能 “ 自圆其说 ” 的。
全部回答
sizeof() = 2
这是用户自己定义的结构体吧。一共有16个字节,变量后面加一个1,表示的是执行哪个变量,哪个变量就会做出相应的动作。
比如:执行unsigned char b14是否要做什么动作,如果为1,就执行该动作或不执行该动作。
这个结构体里面有 16个 char 成员,每个成员占1bit
所以,16个成员,占16bit,也就是2个字节

每个变量 后面加个 :1,表示它占1bit
此结构定义16个无符号字符型变量,每个变量位域1,既1个bit
整个结构占2个字节
示例代码如下,winxp + bcc32编译通过

#include
#include
typedef struct {
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
unsigned char b8:1;
unsigned char b9:1;
unsigned char b10:1;
unsigned char b11:1;
unsigned char b12:1;
unsigned char b13:1;
unsigned char b14:1;
unsigned char b15:1;
}BIT16_flag;
BIT16_flag bit;
int main()
{
printf("%d", sizeof(bit));
return 0;
}

输出:2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我喜欢的人说我傻,我应该怎么回复他一句呢?
---Excuseme,haveyougotanyink?---Yes,butonl
如何serverlet生命周期测试代码
明天要去广州锦泽信息咨询公司面试了。 找工
组装四核电脑要多少钱 就是要穿越的 我要四核
LA是什么缩写
好书点亮智慧,阅读陪伴成长。请结合你读过的
镁铝水滑石(Mg2Al(OH)6Cl?xH2O)是一种人
你好可以解全民K歌永久封号吗
题破山寺后禅院常建清晨入古寺,初日照高林。
狮跑和途安买哪一个好?
玉林妇幼检查微量元素预约电话:微量元素要多
烧解砖厂属建筑材料归那个单位管理'..
西门子plc信号输入和输出的电压各是多少
电子现货买入,卖出,订立,转让,是什么意思
推荐资讯
私房mts 注册码
把冰水混合物放在-10℃的冰箱冷冻室内,冰的
220v变15v变压器能不能用在12v板子上
求助:秒拍怎么录屏
做word表格时,怎样才能令其表格的每一个格子
单选题二战后,美苏两个超级大国争夺世界霸权
飞翔公园地铁站出口c有公交车到广之旅总部
财富通验证码短信收不到短信?
时间终不会回头,谁都不能回头是什么歌
一中教工住宅小区怎么样?好不好?值不值得买
图片上的这款耐克鞋是旧款的呢 不知道是不是
长岭信息网 是长岭人办的吗?想在上面做个收
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?