/*
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_end(ap) ( ap = (va_list)0 )
*/
//具体例子
#include <stdarg.h> //处理可变参数列表的宏定义的头文件
#include <stdio.h>
float average(int n_values, ...)
{
va_list var_arg;
int count;
float sum = 0;
va_start(var_arg, n_values);
for(count=0; count< n_values; count += 1)
{
sum += va_arg(var_arg, int);
}
va_end(var_arg);
return sum/n_values;
}
void main()
{
float result = average(5, 4, 3, 3, 9, 3);
printf("%f", result);
float result1 = average(3, 4, 3, 3);
printf("%f\n", result1);
}