如何在C语言中实现参数个数不确定的函数
在C语言中实现参数个数不确定的函数,可以使用可变参数列表(varargs)。可变参数列表是C语言标准中定义的一种特殊的函数参数,可以接受任意数量、任意类型的参数。使用可变参数列表,可以实现参数个数不确定的函数,非常灵活,而且编程也比较容易。
可变参数列表本质上是一个宏定义,用来代替函数参数列表。宏定义的语法形式如下:
(形式参数);
其中,形式参数是一个可变元素列表,它可以由多种类型组合,例如int, long, double, char等。
可变参数宏定义的一般格式如下:
(type name1, type name2, ...)
其中,type指定变量的类型,而name1, name2, ...则是变量的名称。
下面的程序演示了使用可变参数列表实现函数的例子。本程序使用可变参数列表实现的函数my_function(可以接受任意数量的int类型参数,并将参数的和打印出来。
#include <stdio.h>
#include <stdarg.h>
void my_function(int count, ...)
va_list ap;  //定义一个va_list型的变量,用来储存参数
int i;
int sum = 0;
va_start(ap, count);  //用va_start宏初始化变量,这个宏第二个参数是第一个可变参数的前一个参数
for (i=0; i<count; i++)
printf函数是如何实现的
int num = va_arg(ap, int);  //用va_arg宏获取可变参数
sum += num;
}
va_end(ap);  //用va_end宏结束可变参数的获取
printf("sum = %d\n", sum);
int mai
my_function(3, 1, 2, 3);  //输出sum=6