C 语言中的函数是编程的基本单元,它允许开发者将代码逻辑分成模块化、可重用的部分。函数可以执行特定的任务,并且可以通过参数传递数据。C 语言的函数与其他现代编程语言的函数概念类似,但 C 语言的函数相对比较基础,支持的功能相对较少。以下是关于 C 语言函数的详细介绍。
1. 函数的定义与调用
C 语言函数由 返回类型、函数名、参数列表 和 函数体 组成。以下是一个典型的 C 语言函数定义:
#include <stdio.h>
// 函数声明(也称为原型)
int add(int a, int b);
int main() {
int result = add(3, 5); // 调用函数
printf("Result: %d\n", result);
return 0;
}
// 函数定义
int add(int a, int b) {
return a + b;
}
int factorial(int n) {
if (n == 0)
return 1;
return n * factorial(n - 1); // 递归调用自身
}
int main() {
printf("Factorial of 5: %d\n", factorial(5)); // 输出 120
return 0;
}
6. 函数指针
函数指针是指向函数的指针,允许将函数作为参数传递给其他函数。函数指针可以用于实现回调函数等功能。
定义函数指针并调用函数:
int add(int a, int b) {
return a + b;
}
int main() {
// 定义函数指针
int (*funcPtr)(int, int);
// 将 add 函数的地址赋值给函数指针
funcPtr = add;
// 通过函数指针调用函数
int result = funcPtr(2, 3);
printf("%d\n", result); // 输出 5
return 0;
}
将函数作为参数传递:
int add(int a, int b) {
return a + b;
}
int calculate(int (*operation)(int, int), int a, int b) {
return operation(a, b); // 调用传递的函数
}
int main() {
int result = calculate(add, 5, 3); // 将 add 函数作为参数传递
printf("%d\n", result); // 输出 8
return 0;
}
7. 内联函数(C99 之后)
C 语言从 C99 开始引入了 inline 关键字,允许内联函数。内联函数是提示编译器将函数调用替换为其代码体,减少函数调用的开销。
inline int square(int x) {
return x * x;
}
int main() {
printf("%d\n", square(5)); // 输出 25
return 0;
}
8. 库函数
C 语言标准库中提供了大量的库函数,它们分布在不同的头文件中,可以通过 #include 指令来引入。例如: