如何写参数数目可变的函数

haiyong_wu 2003-01-03 12:54:30
如何写参数数目可变的函数,象printf()那样
...全文
17 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
windcsn 2003-01-03
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdarg.h>
double add_values(char *str ,...)
{
va_list marker;
double result = 0.0;
va_start(marker,str);
while(*str)
{
if(*str = '%')
{
switch(*(++str))
{
case 'd':result+=va_arg(marker,int);
break;
case 'f':result+=va_arg(marker,double);
break;
}
}
str++;
}
va_end(marker);
return(result);
}

void main()
{
double result;
printf("Result %f\n",add_values("%f",3.3));
}
ttoth 2003-01-03
  • 打赏
  • 举报
回复
printf函数的结构是这样的
printf("%s",%d,%d,```````);
%s就是一个字符串,你要编写类似于词法分析的一个分析程序来分析这个字符串的,
gaoxianfeng 2003-01-03
  • 打赏
  • 举报
回复
很简单的 找个例子
langziji 2003-01-03
  • 打赏
  • 举报
回复
void foo(int num,int first,...)
{
}
就是这样的啦,对于va_list va_start va_end,自己查帮助吧。
liuqing531 2003-01-03
  • 打赏
  • 举报
回复
就是把所有的参数放入栈中。
LocalVar 2003-01-03
  • 打赏
  • 举报
回复
在帮助里搜索一下 va_list va_start va_end会对你有帮助

69,336

社区成员

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

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