格式化字符串参数传递问题

rr12 2004-11-21 10:38:56
//以下这段代码运行结果不对,谁帮我看看,谢谢!

void f1(char *format, ...);
void f2(char *format, ...);

f1("value = %d.",4);

void f1(char *format, ...)
{
va_list args;

va_start (args, format);
f2(format, args);
va_end (args);
}

void f2(char *format, ...)
{
va_list args;
char tmp[512];

va_start (args, format);
vsprintf(tmp, format, args);
va_end (args);

printf(tmp);//这句输出结果不对
}
...全文
115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
avalonBBS 2004-11-21
  • 打赏
  • 举报
回复
这个是改后的输出:value = 4.
对不
avalonBBS 2004-11-21
  • 打赏
  • 举报
回复
void f1(char *format, ...)
{
va_list args;

va_start (args, format);
f2(format, args);// 应该是这样:f2(format, *args);
va_end (args);
}
rr12 2004-11-21
  • 打赏
  • 举报
回复
对啦,多谢。

69,382

社区成员

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

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