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