C 和 Java 中的短路求值:有保證嗎?
短路求值是一種語言功能,允許表達式進行部分評估,一旦知道結果就停止。這在某些情況下可以顯著提高效能。
Java 的短路評估
在 Java 中,條件表達式 if (a != null && a.樂趣());受益於短路評估。當 a 為 null 時,條件將為 false,且表達式 a.fun() 將不會被計算。這節省了潛在訪問空引用的成本。
C 的短路評估
在C 中,條件表達式if (a != 0 & &a->fun());也實作了對int 和bool 等內建類型的短路評估。這表示如果 a 為零,則不會計算表達式 a->fun()。
可移植性和編譯
保證短路計算跨不同平台和編譯器的 C 內建類型。但是,請務必注意重載 && 或 ||自訂類型的運算子可以停用短路求值。這是因為編譯器無法確定重載運算子的行為。因此,通常不建議重載這些運算符。
以上是C 和 Java 中的短路評估是否有保證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!