你们有碰到过这种情况吗?

2019-07-20 18:39发布

while(1)
{.........
                 if((tp_dev.x[0]<60)&&(24<tp_dev.y[0]<48))     //只有这个可以有效判断
                                 {  
                                         LCD_ShowString(120,48,200,24,24,"+");
                                         LCD_ShowString(144,48,200,24,24,"-");
                                         LCD_ShowString(120,72,200,24,24,"+");
                                         LCD_ShowString(144,72,200,24,24,"-");
                                         LCD_ShowString(0,48,200,24,24,"TempH:  C");
                                         LCD_ShowNum(72,48,TempH,2,24);
                                         LCD_ShowString(0,72,200,24,24,"TempL:  C");
                                            LCD_ShowNum(72,72,TempL,2,24);

                                 }
                       

                         if((212<tp_dev.x[0]<272)&&(24<tp_dev.y[0]<48))  //从这里开始后面都默认为真了!!!
               {
                             LCD_ShowString(120,48,200,24,24,"-");
                                  

                           }       
                    if((284<tp_dev.x[0]<320)&&(24<tp_dev.y[0]<48))   
              {
                           LCD_ShowString(120,72,200,24,24,"-");

                          }       
                    if((136<tp_dev.x[0]<184)&&(444<tp_dev.y[0]<480))
                        {LCD_ShowString(120,96,200,24,24,"0");
       
                        }

}
死循环的时候到//的时候默认为真了!直接执行里面的语句!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
mack13013
2019-07-20 19:23
小于号的表达式,要分开写,不能写成A<B<C,除非你知道他们的优先级是从右到左,即A<(B<C),或者从左到右,不管是哪种结果,都不是你想要的表达式A<B && B<C。

另外,即使你知道是哪种优先级,这里除非你自己写着玩,要不然,没有哪个公司会允许你这么写的。所有表达式要易读,清晰。

一周热门 更多>