- 論壇徽章:
- 12
|
回復(fù) 6# donotblock
in any order conforming to the precedence rules
這個的意思是“以任何遵守優(yōu)先級規(guī)則的順序”吧,同樣的條目在ISO/IEC 9899:1999(E)(應(yīng)該就是C99)里面是這樣的:
The order in which subexpressions are evaluated and the order in which side effects
takeplace, except as specified for the function-call (), &&, ||, ?:,and comma
operators (6.5).
即子表達(dá)式的計算順序是未指定的。但由于優(yōu)先級和結(jié)合性的規(guī)則,為了計算某個子表達(dá)式可能需要計算另一個表達(dá)式,比如a*b+c,為了計算(a*b)+c,必須先計算a*b,優(yōu)先級規(guī)則限制了這一點(diǎn)。
另外,我認(rèn)為表達(dá)式求值和side effects的發(fā)生并不一定同時。標(biāo)準(zhǔn)中只保證某序列點(diǎn)之前的side effects在序列點(diǎn)處已經(jīng)發(fā)生,但子表達(dá)式求值總歸是有一定順序的,可能某個表達(dá)式被求值了,但side effects并未發(fā)生。 |
|