精華區beta C_and_CPP 關於我們 聯絡資訊
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版) 函式語法 Q: 函式宣告 int f(void); 和 int f(); 一樣嗎? A: 對 C++ 來說,兩者一樣表示 f 函式不需要而且不能有參數。但對 C 來說, 只有前者才表示不能有參數,後者則是表示參數個數及型別並未指定,編 譯器不幫我們在呼叫時做這種檢查。參考上一則。 ----------------------------------- 敬請指正錯誤,或提出更合適的答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc)
jeunder:建議可以補充, 加上 int f(...); 的例子 61.64.150.109 09/02
> -------------------------------------------------------------------------- < 作者: khoguan (Khoguan Phuann) 看板: C_and_CPP 標題: Re: [FAQ集] 函式宣告 int f(void); 和 int f(); ꐠ… 時間: Fri Sep 2 21:56:13 2005 : 推 jeunder:建議可以補充, 加上 int f(...); 的例子 61.64.150.109 09/02 嗯,這種宣告方式,一般都是要先有一個或多個具體的參數型別, 最後再加上這個 ellipsis( , ...) 才有辦法用 stdarg.h 中的 macro 來存取。就像 printf(const char *, ...); 等 I/O系列 那樣。一般是不會只宣告成 int f(...); 這樣的。所以就和這則 FAQ 的 f(void) 和 f() 長的樣子差得比較遠一點。 不過,得確值得另立一則 FAQ 討論一下如何定義 function with variable number of arguments :-)