名稱空間
變體
操作

函式

來自 cppreference.com
< c‎ | language

函式是 C 語言的一種結構,它將一個複合語句(函式體)與一個識別符號(函式名)關聯起來。每個 C 程式都從main 函式開始執行,main 函式要麼終止,要麼呼叫其他使用者定義或庫函式。

// function definition.
// defines a function with the name "sum" and with the body "{ return x+y; }"
int sum(int x, int y) 
{
    return x + y;
}

函式透過函式宣告函式定義引入。

函式可以接受零個或多個引數,這些引數由函式呼叫運算子實參初始化,並且可以透過return 語句向其呼叫者返回一個值。

int n = sum(1, 2); // parameters x and y are initialized with the arguments 1 and 2

函式體在函式定義中提供。程式中使用的每個inline(C99 起) 函式(除非是未求值表示式)必須只定義一次

C 語言中沒有巢狀函式(除了非標準編譯器擴充套件允許的情況):每個函式定義都必須出現在檔案作用域,並且函式無權訪問呼叫者的區域性變數。

int main(void) // the main function definition
{
    int sum(int, int); // function declaration (may appear at any scope)
    int x = 1;  // local variable in main
    sum(1, 2); // function call
 
//    int sum(int a, int b) // error: no nested functions
//    {
//        return  a + b; 
//    }
}
int sum(int a, int b) // function definition
{
//    return x + a + b; //  error: main's x is not accessible within sum
    return a + b;
}

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 6.7.7.4 函式宣告符(包括原型) (p: TBD)
  • 6.9.2 函式定義 (p: TBD)
  • C17 標準 (ISO/IEC 9899:2018)
  • 6.7.6.3 函式宣告符(包括原型) (p: 96-98)
  • 6.9.1 函式定義 (p: 113-115)
  • C11 標準 (ISO/IEC 9899:2011)
  • 6.7.6.3 函式宣告符(包括原型) (p: 133-136)
  • 6.9.1 函式定義 (p: 156-158)
  • C99 標準 (ISO/IEC 9899:1999)
  • 6.7.5.3 函式宣告符(包括原型) (p: 118-121)
  • 6.9.1 函式定義 (p: 141-143)
  • C89/C90 標準 (ISO/IEC 9899:1990)
  • 3.5.4.3 函式宣告符(包括原型)
  • 3.7.1 函式定義

[編輯] 參閱

C++ 文件,關於宣告函式