[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數位生活區 即時熱門文章