va_arg, va_end, va_start是什么意思?用中文解释

sms88 2005-04-27 08:25:01
va_arg, va_end, va_start是什么意思?
请用中文解释

va_arg, va_end, va_start
Access variable-argument lists.

type va_arg( va_list arg_ptr, type );

void va_end( va_list arg_ptr );

void va_start( va_list arg_ptr ); (UNIX version)

void va_start( va_list arg_ptr, prev_param ); (ANSI version)

...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sms88 2005-04-27
  • 打赏
  • 举报
回复
自己懂了,自己看MSDN看懂了,呵呵
#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 ) );
}
xiaozscs 2005-04-27
  • 打赏
  • 举报
回复
mark
王智恒 2005-04-27
  • 打赏
  • 举报
回复
有没有更精确的解释呢,今天下午我还用到它了呢
c_nestor 2005-04-27
  • 打赏
  • 举报
回复
变长参数表的东西
开始,参数,结素我是这么理解的
看高手说教

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧