硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4037|回复: 4
收起左侧

[技术讨论] 逻辑运算问题

[复制链接]

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2020-3-28 19:07:44 | 显示全部楼层 |阅读模式
微信图片_20200328190435.png
如图所示,单步反复执行了好几遍,没有变化,为什么。
参考了LL库也是这么干的,咋不好用呢,还是什么地方没弄明白。请指教!
#define SET_BIT(REG, BIT)     ((REG) |= (BIT))
#define CLEAR_BIT(REG, BIT)   ((REG) &= ~(BIT))
#define READ_BIT(REG, BIT)    ((REG) & (BIT))
#define CLEAR_REG(REG)        ((REG) = (0x0))
#define WRITE_REG(REG, VAL)   ((REG) = (VAL))
#define READ_REG(REG)         ((REG))
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2020-3-28 20:00:17 | 显示全部楼层
printf打印出来看下
回复

使用道具 举报

81

主题

496

回帖

739

积分

金牌会员

积分
739
发表于 2020-3-29 14:54:09 | 显示全部楼层
应该是被优化了,定义data变量加volatile
回复

使用道具 举报

81

主题

496

回帖

739

积分

金牌会员

积分
739
发表于 2020-3-29 17:48:17 | 显示全部楼层
被优化掉了 ,变量data申明前加volatile修饰
回复

使用道具 举报

218

主题

1106

回帖

1770

积分

至尊会员

More we do, more we can do.

积分
1770
发表于 2020-3-29 21:31:02 | 显示全部楼层
没什么问题,应该是被优化删除了,可以把变量改为全局的或优化等级改为-O0。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-14 05:33 , Processed in 0.211401 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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