在
嵌入汇编求不定参数平均值一文中,我们用在c语言中嵌入汇编的方式去访问各个不定参数,本文中, 我们用c语言的3个宏来实现同样的功能。
下面是代码:
// avg.c
#include <stdio.h>
#include <stdarg.h>
int avg(int num, ...);
int main()
{
int result;
result = avg(5, 2, 8, 7, 4, 9);
printf("avg is %d\n", result);
return 0;
}
int avg(int num, int arg, ...)
{
va_list ap;
int n;
int summary;
if( num < 1 )
return 0;
n = num;
va_start(ap, arg); //初始化ap
summary = arg;
while(--n > 0)
summary += va_arg(ap, int); //遍历所有可变参数的值
va_end(ap); //“释放”ap,与va_start对称出现
return summary / num;
}
|
代码很简单, 主要用到三个宏va_start, va_end, 以及va_arg,代码上面都有注释, 就不再详细说明了。
阅读(1166) | 评论(0) | 转发(0) |