函數呼叫中參數求值的順序
在C 和C 等程式語言中,函數參數求值的順序是一個主題辯論。本文深入探討了各自語言標準概述的細節。
C 語言
根據 C99 和 C11 標準,計算函數參數沒有固定的順序。其中的函數指示符、參數和子表達式的求值以未指定的順序發生,但在實際函數呼叫之前有一個序列點。這意味著參數求值的副作用發生在函數進入其主體之前。
C 語言
在 C 中,語言標準指定參數求值的順序在函數呼叫中未指定。參數表達式求值的所有副作用都發生在輸入函數之前。後綴表達式和參數表達式清單的求值順序也未指定。
硬體堆疊的使用
C 和 C 標準都不需要使用硬體堆疊來傳遞函數參數。參數傳遞的方法是留給編譯器設計者的實作細節。雖然大多數架構都採用基於堆疊的方法,但它並未普遍實作。
結論
C 和 C 中函數參數的求值順序可能會有所不同,取決於實現,因為它們的語言標準沒有明確定義。然而,值得注意的是,參數評估的副作用發生在以兩種語言執行對應函數之前。
以上是C 和 C 函數呼叫中參數求值的順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!