硬汉嵌入式论坛

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

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

[复制链接]

9

主题

24

回帖

51

积分

初级会员

积分
51
发表于 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万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

60

主题

293

回帖

473

积分

高级会员

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

使用道具 举报

60

主题

293

回帖

473

积分

高级会员

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

使用道具 举报

211

主题

1050

回帖

1693

积分

至尊会员

More we do, more we can do.

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-30 18:21 , Processed in 0.172948 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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