#include <stdio.h>
#include <ctype.h>
#include<stdlib.h>
#include <stdarg.h>
int average( int first, ... ) //变参数函数,C++里也有
{
int count=0,i=first,sum=0;
va_list maker; //va_list 类型数据可以保存函数的所有参数,做为一个列表一样保存,若为全局变量的话,还可以传给其它函数
va_start(maker,first); //设置列表的起始位置
while(i!=-1)
{
sum+=i;
count++;
i=va_arg(maker,int);//返回maker列表的当前值,并指向列表的下一个位置
}
return sum/count;
}
void main(void)
{
printf( "Average is: %d/n", average( 2, 3, 4,4, -1 ) );
}
博客展示了C++中变参数函数的实现。通过包含多个头文件,定义了一个average变参数函数,使用va_list类型保存函数参数,va_start设置列表起始位置,va_arg获取列表值。最后在main函数中调用该函数计算平均值。
2806

被折叠的 条评论
为什么被折叠?



