你好,在C语言中if属于条件选择语句,结构为if(表达式){语句},其中表达式的含义即运算,在if语言表达式结果会强制转换为bit型,即1或0,1代表真,0代表假。真则执行后面{}中的语句,假则跳过。然而逗号在C语言中是一种优先级最低的运算符,它作为顺序求值,例如 a=(3,4,7) 结果a=7;再例 b=1;c=3;a=(5+(c+1,b);结果a=6;,运算总取最后一个表达式的值。现在再来看你写的那一句if(表达式1,表达式2)其结果就是if(表达式2),与表达式1无关,他们进行了逗号运算。接下来讲括号运算,数学中遵循括号中的表达式优先运算,在C语言中也有效,if((表达式1)&&(表达式2))这样结果也没有错,但是对于单片机来讲,它需要多一个括号运算。徒增内耗,并没有什么意义。
以上如有不正之处还望大佬们指出。 |