你好,在C語言中if屬于條件選擇語句,結(jié)構(gòu)為if(表達式){語句},其中表達式的含義即運算,在if語言表達式結(jié)果會強制轉(zhuǎn)換為bit型,即1或0,1代表真,0代表假。真則執(zhí)行后面{}中的語句,假則跳過。然而逗號在C語言中是一種優(yōu)先級最低的運算符,它作為順序求值,例如 a=(3,4,7) 結(jié)果a=7;再例 b=1;c=3;a=(5+(c+1,b);結(jié)果a=6;,運算總?cè)∽詈笠粋€表達式的值�,F(xiàn)在再來看你寫的那一句if(表達式1,表達式2)其結(jié)果就是if(表達式2),與表達式1無關(guān),他們進行了逗號運算。接下來講括號運算,數(shù)學中遵循括號中的表達式優(yōu)先運算,在C語言中也有效,if((表達式1)&&(表達式2))這樣結(jié)果也沒有錯,但是對于單片機來講,它需要多一個括號運算。徒增內(nèi)耗,并沒有什么意義。
以上如有不正之處還望大佬們指出。 |