前提要求:包含#include <stdarg.h>,该头文件中定义了一个va_list类型和三个宏——va_start、va_arg和va_end
【实现过程实例】
/*
* 作者:夏侯佐鑫
* 日期: 2012.06.21
* 功能:可变参数计算平均值
*/
#include <stdio.h>
#include <stdarg.h>
float average(int n_values, ...)
{
va_list var_arg;
int count = 0;
float sum = 0;
/*
* 可变参数访问
*/
va_start(var_arg, n_values); //function:将var_arg变量设置为指向可变参数部分的第一个参数
/*
* 添加取自可变参数列表值
*/
for(count=0; count<n_values; count+=1)
{
sum += va_arg(var_arg, int);
}
va_end(var_arg);
return sum / n_values;
}
int main(void)
{
float a = average(3, 20,10,30); //第一个值为后续参数个数
printf("求平均值结果为%f\n", a);
return
【结果】