打印
[51单片机]

C51 代码不被编译,求解

[复制链接]
823|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
彪哥|  楼主 | 2015-3-23 20:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
JY-DX-JY| | 2015-3-23 20:53 | 只看该作者
那就是被优化掉了。

使用特权

评论回复
板凳
ayb_ice| | 2015-3-24 08:01 | 只看该作者
第一个条件永远满足

使用特权

评论回复
地板
ningling_21| | 2015-3-24 09:11 | 只看该作者
READ 是一个宏定义?

或者第一个条件总是成立的

使用特权

评论回复
5
彪哥|  楼主 | 2015-3-24 10:50 | 只看该作者
本帖最后由 彪哥 于 2015-3-24 11:09 编辑

恍然大悟!READ应该与0x03,总有这种钻进死胡同的感觉。谢谢楼上几位!

使用特权

评论回复
6
coody| | 2015-3-24 13:40 | 只看该作者
如果_IP_MODE为非0值,则 if((READ & 0x00) == _IP_MODE)永远不满足,所以编译器就忽略掉了。

如果_IP_MODE为0值,则条件永远满足,就不会被优化掉,但后面的else if则很可能会被优化掉,因为永远执行不到。

编译器其实很聪明的。

使用特权

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

本版积分规则

44

主题

171

帖子

1

粉丝