判断中断原因的小问题

2019-07-21 05:10发布

举个例子:
if(TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET),

为啥都不写成
if(TIM_GetITStatus(TIM2, TIM_IT_CC1)==SET),
后者会出现什么问题吗?
原子的例程都是前者。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
xianshasaman
1楼-- · 2019-07-21 06:19
非零判断会比相等判断稍微快一点点,因为判断内存里面的某个数和另一个数是不是相等时,需要在通用寄存器里做减法,然后再判断这个差是不是0。
不过这个影响几乎可以忽略的。
来俩不甜的
2楼-- · 2019-07-21 08:00
都可以。第一种好像是有什么讲究,好像是判断不等于优于等于。不过结果都是一样的
edmund1234
3楼-- · 2019-07-21 12:13
根本就没分别
宫本无三四
4楼-- · 2019-07-21 12:55
 精彩回答 2  元偷偷看……
edmund1234
5楼-- · 2019-07-21 15:41
宫本无三四 发表于 2018-11-19 16:29
跟楼上的老哥不一样啊

你把种写法经编译后的汇编对比一下, 就知道答案了
萌新007
6楼-- · 2019-07-21 16:00
xianshasaman 发表于 2018-11-19 14:28
非零判断会比相等判断稍微快一点点,因为判断内存里面的某个数和另一个数是不是相等时,需要在通用寄存器里 ...

专业

一周热门 更多>