解释va_arg, va_end, va_start
2005-04-27 21:03
447 查看
#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 ) );
}
#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语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
- va_start/va_arg/va_end原理与使用
- 【转】va_list、va_start、va_arg、va_end的原理与使用
- va_start va_end va_arg的用处
- va_list, va_start, va_end, va_arg
- va_list、va_start、va_arg、va_end的原理与使用
- stdarg.h中三个宏va_start ,va_arg和va_end
- va_start,va_arg,va_end,va_list应用举例--实现可变参数的函数
- C++ 中 va_list va_start va_arg va_end 的用法!
- va_list、va_start、va_arg、va_end的原理与使用
- demo关于(va_list,va_start,va_arg,va_end)的(-(void)addButton:(NSString *)sender,...{})方法
- va_start/va_arg/va_end--------可变参函数
- va_list、va_start、va_arg、va_end的原理与使用
- va_start va_arg va_end 的原理与实例
- VA_LIST VA_START VA_ARG VA_END
- va_list/va_start/va_arg/va_end深入分析
- va_list , va_start , va_arg , va_end详解
- va_list、va_start、va_arg、va_end用法
- C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用