函数
函数是一个自包含的代码块,用于执行特定的任务或一组任务。函数提供了一种组织和模块化代码的方式,使其更具可读性、可维护性。
#include <stdio.h>
// 计算阶乘的函数
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
printf("The factorial of %d is: %d\n", num, factorial(num));
return 0;
}
内联函数
inline 关键字用于建议编译器尝试将函数的代码内容插入到调用代码中,而不是生成函数调用。在某些情况下,这可以节约函数调用开销,提高性能。
#include <stdio.h>
// 内联函数定义
static inline int square(int x) {
return x * x;
}
int main() {
int num = 5;
// 调用内联函数
int result = square(num);
printf("Square of %d is: %d\n", num, result);
return 0;
}
变参函数
在 C 中,变参函数是一种可以接受可变数量参数的函数。stdarg.h 头文件提供了一组用于处理此类函数的宏和数据类型。一个常见的变参函数例子就是 printf 函数。
#include <stdio.h>
#include <stdarg.h>
// 整数求和的变参函数
int sum(int num, ...) {
int result = 0;
// 声明一个 va_list 以保存可变参数
va_list args;
// 将 va_list 初始化为指向第一个可变参数
va_start(args, num);
// 循环遍历可变参数并求和
for (int i = 0; i < num; i++) {
result += va_arg(args, int);
}
// 清理 va_list
va_end(args);
return result;
}
int main() {
// 用不同数量的参数调用变参函数
printf("Sum: %d\n", sum(3, 1, 2, 3));
printf("Sum: %d\n", sum(5, 10, 20, 30, 40, 50));
return 0;
}
注意,sum 函数需要至少一个固定参数(num)来确定可变参数的数量。va_arg 宏根据其类型获取每一个可变参数。
代码挑战
编写一个 C 程序,其中定义一个名为
calculateAverage的变参函数,并计算变参的平均值。
Loading...
> 此处输出代码运行结果