說我有這樣的代碼:是按位還是保證評估順序?
unsigned int func1();
unsigned int func2();
unsigned int func3();
unsigned int x = func1() | func2() | func3();
不c + +保證FUNC1()將首先被調用,然後FUNC2(),然後FUNC3()?
或者是編譯器允許以任何順序調用函數的感覺?
另外,編譯器是否允許在這裏實現短路優化? (例如,如果func1()返回〜0,編譯器是否可以決定不打擾調用func2()或func3(),因爲它知道它們的返回值不會影響賦給x的值?)
不屬於這個問題,而是一個現在被刪除的答案:三個沒有評論的downvotes?來吧,分享知識,不要傻。 @Answerer:你的答案的第一部分是不正確的,子表達式可以* any * order來評估;這可能就是你被低估的原因。 – GManNickG 2011-05-20 23:37:30