[FAQ集] 函式語法:int max(a, b) int a, b; …

看板C_and_CPP (C/C++)作者 (Khoguan Phuann)時間19年前 (2005/09/01 23:20), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/1
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

61.228.216.206 09/01, , 1F
61.228.216.206 09/01, 1F
※ 編輯: khoguan 來自: 220.130.208.167 (09/02 00:01)

61.224.77.210 09/02, , 2F
收到!!!!
61.224.77.210 09/02, 2F

10/04 12:42, , 3F
朝聖
10/04 12:42, 3F

10/04 15:32, , 4F
推~,解惑了。
10/04 15:32, 4F
文章代碼(AID): #135nnQEm (C_and_CPP)
文章代碼(AID): #135nnQEm (C_and_CPP)