联合体该如何设置某一位

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部