Functions
函数是一种C语言结构,它将一个 复合语句 (函数体)与一个 标识符 (函数名)相关联。每个C程序都从 主函数 开始执行,该函数要么终止,要么调用其他用户定义或库函数。
// 函数定义 // 定义一个名为 "sum" 的函数,函数体为 "{ return x+y; }" int sum(int x, int y) { return x + y; }
函数可以接受零个或多个 参数 ,这些参数通过 函数调用运算符 的 实参 进行初始化,并可通过 return语句 向调用方返回值。
int n = sum(1, 2); // 形参x和y通过实参1和2完成初始化
函数的函数体由 函数定义 提供。每个在表达式中使用的 非 内联 (C99起) 函数(除非是 不求值表达式 )必须在程序中 仅被定义一次 。
不存在嵌套函数(除非通过非标准编译器扩展允许):每个函数定义必须出现在文件作用域中,且函数无法访问调用方的局部变量:
int main(void) // main函数定义 { int sum(int, int); // 函数声明(可出现在任意作用域) int x = 1; // main函数中的局部变量 sum(1, 2); // 函数调用 // int sum(int a, int b) // 错误:不支持嵌套函数 // { // return a + b; // } } int sum(int a, int b) // 函数定义 { // return x + a + b; // 错误:main函数中的x在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 函数声明符(含原型)(页码: 96-98)
-
- 6.9.1 函数定义 (页码: 113-115)
- C11 标准 (ISO/IEC 9899:2011):
-
- 6.7.6.3 函数声明符(含原型)(页码: 133-136)
-
- 6.9.1 函数定义 (页码: 156-158)
- C99标准(ISO/IEC 9899:1999):
-
- 6.7.5.3 函数声明符(含原型)(页码:118-121)
-
- 6.9.1 函数定义(页码:141-143)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 3.5.4.3 函数声明符(包含原型)
-
- 3.7.1 函数定义
参见
|
C++ 文档
关于
函数声明
|