首頁 >後端開發 >C++ >C 和 C 函數呼叫中參數求值的順序是什麼?

C 和 C 函數呼叫中參數求值的順序是什麼?

Linda Hamilton
Linda Hamilton原創
2024-12-26 15:20:14257瀏覽

What is the Order of Parameter Evaluation in C and C   Function Calls?

函數呼叫中參數求值的順序

在C 和C 等程式語言中,函數參數求值的順序是一個主題辯論。本文深入探討了各自語言標準概述的細節。

C 語言

根據 C99 和 C11 標準,計算函數參數沒有固定的順序。其中的函數指示符、參數和子表達式的求值以未指定的順序發生,但在實際函數呼叫之前有一個序列點。這意味著參數求值的副作用發生在函數進入其主體之前。

C 語言

在 C 中,語言標準指定參數求值的順序在函數呼叫中未指定。參數表達式求值的所有副作用都發生在輸入函數之前。後綴表達式和參數表達式清單的求值順序也未指定。

硬體堆疊的使用

C 和 C 標準都不需要使用硬體堆疊來傳遞函數參數。參數傳遞的方法是留給編譯器設計者的實作細節。雖然大多數架構都採用基於堆疊的方法,但它並未普遍實作。

結論

C 和 C 中函數參數的求值順序可能會有所不同,取決於實現,因為它們的語言標準沒有明確定義。然而,值得注意的是,參數評估的副作用發生在以兩種語言執行對應函數之前。

以上是C 和 C 函數呼叫中參數求值的順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn