发 帖  
原厂入驻New
[问答] 有人用过C语言位域吗
60 c语言
分享
typedef struct
{u16 b :5;
u16 g :6;
u16 r :5;
} RGB;
RGB *rgb;
tx=0xf40f;
                rgb=(RGB *)(tx);
这样的出来的结果是rgb->r=0x1f;
rgb->g=0x3f;
rgb->b=0x1f;  
相当于每一位都被置1了,这是为什么呢?
0
2020-6-16 04:35:09   评论 分享淘帖 邀请回答
6个回答
这个办法不错.呵呵,学习了.帮你把代码改了一下,可以正确获取值.
typedef struct
{
u16 b:5;
u16 g:6;
u16 r:5;
} RGB;
RGB *rgb;
void  testlsk(void)
{
u16 tx;
tx=0xf40f;
rgb=(RGB *)(&tx);
printf("r,g,b:%d,%d,%d",rgb->r,rgb->g,rgb->b);
}
2020-6-16 09:27:13 评论

举报

2020-6-16 09:45:20 评论

举报

stm32库函数,好多都是把结构体那样定义的
2020-6-16 10:01:03 评论

举报

恩恩嗯,你的方法很正确
2020-6-16 10:19:22 评论

举报

学习了!!!已经验证过了。。。学习板上验证过!vc++6.0 也验证了!!

2020-6-16 10:37:33 评论

举报

2020-6-16 10:49:36 评论

举报

只有小组成员才能发言,加入小组>>

76个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表