共用方式為


C 函式定義

函式定義中指定函式的型別和數目接獲,它會預期的參數和傳回型別的名稱。 函式定義也會包含函式主體與宣告的區域變數,並判斷該函式的用途的陳述式。

語法

  • 轉譯單位
    外部宣告

    轉譯單位外部宣告

  • 外部宣告: / * 外部 (檔案) 的範圍只允許 * /
    函式定義

    declaration

  • 函式定義: / * 在此宣告為函式宣告子 * /
    宣告規範選擇屬性 seq 選擇宣告子宣告清單選擇複合陳述式

    / * 屬性 seq 為 Microsoft 特定 * /

原型參數為:

  • 宣告規範
    儲存類別規範的宣告規範opt

    型別規範的宣告規範opt

    型別限定詞的宣告規範opt

  • 宣告清單
    宣告

    宣告清單宣告

  • declarator:
    指標選擇直接宣告子

  • 直接宣告子: / * 函式宣告子 * /
    直接宣告子**(** 參數型別清單**)** / * 新樣式宣告子 * /

    直接宣告子**(** 識別項清單選擇**)** / * 過時樣式宣告子 * /

參數清單定義中的使用此語法:

  • 參數型別清單: / * 參數清單 * /
    參數清單

    參數清單**、...**

  • 參數清單
    參數宣告

    參數清單**,** 參數宣告

  • 參數宣告
    宣告規範宣告子

    抽象宣告子的宣告規範opt

舊函式定義中的 [參數] 清單會使用此語法:

  • 識別項清單: / * 過時樣式的函式定義和宣告中使用 * /
    identifier

    識別項清單**,** 識別項

函式主體的語法如下:

  • 複合陳述式: / * 函式主體 * /
    { declaration-list optstatement-list opt**}**

可以修改的函式宣告的唯一儲存類別規範是extern和靜態。 extern規範表示函式可以被參考從其他檔案。 也就是函式名稱在匯出至連結器。 靜態規範表示函式不能參考從其他檔案。 也就是連結器就不會匯出名稱。 如果沒有儲存類別就會出現在函式定義中, extern假設。 在任何情況下,函式一律會顯示從定義點至檔案結尾。

選擇性的宣告規範且強制declarator一起指定函式的傳回型別和名稱。 declarator是命名函式,並在函數名稱後括號內的識別項的組合。 選擇性的屬性 seq 終端是 Microsoft 專屬中所定義的功能函式屬性

直接宣告子 (在declarator語法) 指定函式所定義的名稱,以及其參數的識別項。 如果直接宣告子 包括 參數型別清單,清單會指定所有參數型別。 這類的宣告子也是較新的函式呼叫的函式原型。

A declaration在宣告清單函式中定義不能包含儲存類別規範而非註冊型別規範宣告規範時,才可以省略語法註冊的值為指定的儲存類別int型別。

複合陳述式是函式主體包含區域變數宣告,外部宣告的項目和陳述式的參考。

章節函式屬性的儲存類別傳回型別參數,和 函式主體描述這些元件的詳細資料中的函式定義。

請參閱

概念

函式 (C)