大家都知道我们经常使用printf 函数中的参数是可变长的,例如可以简单点 printf( "this is test" );
或者是多参数的使用,例如:
printf( "%s %d", "this is test", value );
现在我们举出的这个例子,使用C标准函数,使得我们自己写的函数可以接受多个参数
在看这个示例前,大家必须要对
va_list
va_start
va_arg
va_end
这四个标识符有所了解,大家可以轻易从网上知道其功能,下面的例子中,函数average可以接受多个参数,并计算参数
的平均值,打印出来,请看例子
#include <STDIO.H>
#include <STDARG.H>
int average( int i, ... );
int main()
{
int x = 12;
int y = 32;
int z = 43;
printf( "12 , 32, 43 the average is %d\n", average( 3, x, y, z ) );
return 0;
}
int average( int i, ... )
{
int j;
int total = 0;
va_list ap;
va_start( ap, i );
for ( j=0; j<i; j++ )
{
total += va_arg( ap, int );
}
va_end( ap );
return total/i;
}