OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6607|回复: 4

Bug没有大小—Bug之逻辑运算符优先级

[复制链接]

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
发表于 2018-1-30 01:17:19 | 显示全部楼层 |阅读模式
QQ图片20180130003923.png
先看上面的代码,最后串口打印出来Key_Sta[0] = 0xff;为什么呢?????蛤???
打眼看去好像没什么问题,为什么????
QQ图片20180130011232.png
可把我郁闷坏了,我以为遇到了“有毒的代码”;;;;;;
其实啊,最后发现原来是运算符优先级的问题;看下面的图可以知道,==的优先级高于 & ,再看上面那段代码。。。发现了什么。。。。。。。天呐,,,可把我害苦了。。
这也告诉我们,如果对优先级不全熟悉的话,那么尽量加括号来限制优先级,养成好习惯对减少Bug是多么重要啊!
运算符优先级.jpg
在此分享,希望能吸取教训;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2018-2-3 13:51:06 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2018-2-3
在线时间
2 小时
发表于 2018-2-3 21:47:01 | 显示全部楼层
你就不能直接判断数组直接等于0xFF么?
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2018-2-3
在线时间
2 小时
发表于 2018-2-3 21:52:35 | 显示全部楼层
直接  if(Key buf[i]==0x00)   else if(Key buf[i]==0xff),或者啥。简洁点
回复 支持 反对

使用道具 举报

1

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-9-11
在线时间
6 小时
发表于 2018-9-19 08:51:38 | 显示全部楼层
这个是什么语言编写的???
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 18:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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