你好,在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))這樣結果也沒有錯,但是對于單片機來講,它需要多一個括號運算。徒增內耗,并沒有什么意義。
以上如有不正之處還望大佬們指出。 |