c语言 函数参数个数不定
时间: 2023-07-02 12:07:27 浏览: 176
不定参数函数
在C语言中,可以使用可变参数函数来实现函数参数个数不定的功能。可变参数函数使用stdarg.h头文件中的可变参数列表来接收不定数量的参数。
可变参数函数的声明格式为:
```c
int func_name(int arg1, ...);
```
其中,省略号表示可变数量的参数。在函数实现中,需要使用va_start、va_arg和va_end这三个宏来访问可变参数列表。
例如,下面是一个计算可变数量整数平均值的示例:
```c
#include <stdarg.h>
double average(int num, ...) {
va_list valist;
double sum = 0.0;
int i;
/* 为可变参数列表初始化valist */
va_start(valist, num);
/* 访问可变参数列表中的参数 */
for (i = 0; i < num; i++) {
sum += va_arg(valist, int);
}
/* 结束访问可变参数列表 */
va_end(valist);
return sum / num;
}
int main() {
printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2, 3, 4, 5));
printf("Average of 5, 10, 15 = %f\n", average(3, 5, 10, 15));
return 0;
}
```
在上面的代码中,average函数接收一个整数num和一个可变数量的整数参数。在函数内部,通过va_start、va_arg和va_end这三个宏来访问可变参数列表,计算出所有参数的和并返回平均值。在main函数中,调用average函数来计算不同组数字的平均值。
阅读全文