C語言的問題 if(10<=x<=20)
最近在看程序的時(shí)候,
有一款產(chǎn)品的代碼是其他產(chǎn)品沒有的.
就看了一下:
(總感覺很別扭,因?yàn)橐话阄也粫褩l件都寫在一起,雖然一開始不知道什么原因)

keil提示有警告,

忽然,才意識到確實(shí)有問題.
應(yīng)該寫成 (TIM7->CNT>=70 ) && (TIM7->CNT<=90)
原因是,如果 TIM7->CNT 的值是80那么:
(70<=TIM7->CNT<=90) 這個(gè)條件就會通過.
因?yàn)?0<=80 然后會計(jì)算出true,true會被認(rèn)為成1.
true<=90,?
然后整個(gè)就通過了...
標(biāo)簽: