dzymushi 发表于 2013-7-16 16:25:55

KEIL的条件判断

if(1==(flag&(0x01<<1))) dest= dest+0x01;
和if(lag&(0x01<<1))      dest= dest+0x01;
这两句话在 keil里面不一样吗,运行的效果不一样呢
之前在IAR和codewarry里面写都是一个效果的哇

wangchin1988 发表于 2013-7-16 16:31:08

flag为多少时能满足flag & 0x02 = 1?

Goselff 发表于 2013-7-16 16:34:22

肯定不一样,第一条那个等于1的永远不执行。0x01<<1后变为0x02,然后跟flag按位与的结果只有两种,0或者2。

yyinfo263 发表于 2013-7-16 20:35:49

一个是判断等于1才执行 下面是非0就执行 不知理解对不对

CC2530 发表于 2013-7-17 08:14:25

if(1==2)

if(2)
的区别。

gamep 发表于 2013-7-17 08:29:06

楼上说的都很好 IAR会一样吗??

starsnow 发表于 2013-7-17 09:30:29

估计楼主打错字了,这个太明显了,楼上都说明了,就不多说啦。

z903057128 发表于 2013-7-17 09:49:41

很好奇 IAR是怎么让它一样的

lufcn 发表于 2013-7-17 10:17:13

同上,很好奇,应为&&吧

dzymushi 发表于 2013-7-17 13:07:27

逻辑错误了。

sangarr 发表于 2013-7-17 16:45:13

哎,基础知识呀。if语句只判断真或者假,0为假,非零就是真。结果为2也是真,但是第一句就不一样了。

信天游 发表于 2013-7-18 08:41:37

一般情况下我都判断结果是否为非零
页: [1]
查看完整版本: KEIL的条件判断