看板 C_and_CPP 關於我們 聯絡資訊
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版) 函式語法 Q: 有些 C 程式的函式寫成 int max(a, b) int a, b; { /* ... */ } 好奇怪。 A: int max(a, b) int a, b; { return a > b ? a : b; } 這種寫法是舊風格(old-style)的函式定義寫法,它所相應的函式宣告必須 寫成 int max(); 括弧裡面要空白。這種寫法的缺點就是,那個括弧內空白 的宣告方式,是表示參數的個數及型別未指定,也就是說在我們呼叫該函式 時,編譯器不會根據函式的宣告幫我們做參數個數及型別的檢查,是一種不 安全的舊用法。所以應該改用新風格的宣告及定義方式: int max(int a, int b); /* 宣告時參數名字 a 和 b 可以省略 */ /* ...... */ int max(int a, int b) /* 這是定義 */ { return a > b ? a : b; } 由於舊風格的寫法仍然非常頑強的存在著,以至於雖然 C89 已將它視為過 時用法,到了 C99 的時代,仍然容許這種寫法。但是除非特殊因素,例如 要維護舊程式,或是要在只支援舊風格的編譯器下編譯,我們自己寫程式 時,務請使用新風格的寫法。 ----------------------------------- 敬請指正錯誤,或提出更合適的答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.167
renderer:推 61.228.216.206 09/01
※ 編輯: khoguan 來自: 220.130.208.167 (09/02 00:01)
allall:收到!!!! 61.224.77.210 09/02
tomap41017:朝聖 10/04 12:42
PcGrek:推~,解惑了。 10/04 15:32