<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>