打印

联合体该如何设置某一位

[复制链接]
1149|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1973chen|  楼主 | 2024-5-5 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
联合体如下:
union SFLAG
{
    struct
         {
        uint8_t b0   : 1;
        uint8_t b1   : 1;
        uint8_t b2   : 1;
        uint8_t b3   : 1;
        uint8_t b4   : 1;
        uint8_t b5   : 1;
        uint8_t b6   : 1;
        uint8_t b7   : 1;
        uint8_t b8   : 1;
        uint8_t b9   : 1;
        uint8_t b10  : 1;
        uint8_t b11  : 1;
        uint8_t b12  : 1;
        uint8_t b13  : 1;
        uint8_t b14  : 1;
        uint8_t b15  : 1;
    } bits;
    uint16_t bytes;
};

union SFLAG     Sflag = {0};
现在想设置b0 位的值,该如何写代码,试用
Sflag.bytes  &=0x01;
怎么不对呢???
请高手帮助解决,谢谢!!

使用特权

评论回复

相关帖子

沙发
LcwSwust| | 2024-5-5 10:20 | 只看该作者
先不说联合体,你先试一下随便定义一个char 或 int变量,并对某位置1或清零。
建议百度 C语言 位运算

使用特权

评论回复
板凳
xch| | 2024-5-5 19:38 | 只看该作者
typedef

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝