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 中,將接受傳遞的引數,並執行函式內的程式碼。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP