這個問題在這里已經有了答案: 在宣告符之外宣告引數 1 個回答 1 小時前關閉。
在研究函式宣告時,我遇到了一種奇怪的(對我來說)函式定義的方式:
int f(void); // declaration: takes no parameters
int g(); // declaration: takes unknown parameters
int main(void) {
f(1); // compile-time error
g(2); // undefined behavior
}
int f(void) { return 1; } // actual definition
int g(a,b,c,d) int a,b,c,d; { return 2; } // actual definition
最后一行完全讓我困惑。什么int g(a,b,c,d) int a,b,c,d; { return 2; }意思?可能已經有人問過這樣的問題,但我不知道如何組成搜索查詢。
uj5u.com熱心網友回復:
的定義g使用舊的 K&R 方法來指定引數型別。
而不是指定的引數及其型別的內部(和),只有人名是指定的,那么自變數的型別指定,那么函式體。
這種宣告引數的風格已被棄用,不應再使用,因為除其他原因外,它也不符合函式原型的要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/363236.html
上一篇:jsp中的頁面內容型別是什么?
下一篇:在c中使用遞回函式的星形模式
