可变参数列表的实现--平均值

<pre name="code" class="cpp"><span style="font-size:24px;">c语言中用可变参数列表的原因</span>
<span style="font-size:18px;">cpp文件中参数可以初始化,则实参中用几个参数写几个,但是c中形参不可以初始化,所以引出可变参数列表,头文件为stdarg.h,使用宏stdarg
va_list类型   arg变量    eg:va_list arg
宏stdarg使用了三种宏  
va_start(arg,val)初始化
va_arg(arg,int)读取
va_end(arg)结束</span>
 
 

<span style="font-size:18px;">#include<stdio.h>
#include<stdarg.h>
double average(int val,...)
{
	va_list arg;
	double sum=0.0;
	int i=0;
	va_start(arg,val);
	for(i=0;i<val;i++)
	{
		sum+=va_arg(arg,int);
	}
	va_end(arg);
	return sum/val;
}
int main()
{
	double ret=average(6,1,2,3,4,5,7);
	printf("%f\n",ret);
	return 0;
}
</span>


你可能感兴趣的:(可变参数列表的实现--平均值)