C/C++ 函式呼叫謎題?


這個 C/C++ 函式呼叫謎題是一個謎題,旨在探索 C 和 C++ 這兩種程式語言中方法呼叫的更多行為。

C 和 C++ 中方法的輸出是不同的。讓我們看看在 C 和 C++ 中呼叫方法的區別。

讓我們舉一個例子並檢視下面程式碼在 c 和 c++ 中的輸出。

示例

 動態演示

void method() {
   // Print statement
}
int main() {
   method();
   method(2);
}

輸出

對於 C++ -

Error : too many arguments to function ‘void method()’

對於 C -

Program runs without any error.

輸出和錯誤背後的邏輯

C++ 程式語言的編譯器將函式 method() 作為沒有任何引數的函式,而 C 編譯器中的相同函式可以高效地工作,因為編譯器將函式 method() 視為可以接受可變引數的函式。

由於此原因,當我們向在定義中沒有任何引數的方法傳遞引數時,在 C++ 中,輸出視窗中將提示一個錯誤,提示“錯誤:向“void func()”函式傳遞的引數過多”。

在 C 中,將接受傳遞的引數,並執行函式內的程式碼。

更新於:2019 年 10 月 7 日

158 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.