[FAQ集] 函式語法:int max(a, b) int a, b; …
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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章