OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 825|回复: 3

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

[复制链接]

  离线 

14

主题

35

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

16

主题

335

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

1

主题

13

帖子

0

精华

新手上路

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

使用道具 举报

  离线 

1

主题

13

帖子

0

精华

新手上路

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

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-2-20 15:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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