1.如何传递可变参数表? 2.如何给可变参数表增加前缀?

yaoyansi 2009-03-19 03:39:09
1.如何传递可变参数表?
函数声明如下:
void f(const char *formats, ...);
void log(const char *formats, ...);
void log(const string& log);


void f(const char *formats, ...)
{
log2(....);//<----这里该如何写?
}

int main()
{
f("%d %d",2, 3);
}



2.如何给可变参数表增加前缀?

函数声明如下:
void f(const char *formats, ...);
void log(const char *formats, ...);
void log(const string& log);


void f(const char *formats, ...)
{
//<----这里该如何写?
}

int main()
{
f("%d %d",2, 3);
}
如果期望的结果是:
\>AAA2 3
f(..)应该怎么写才能既简洁又高效?


...全文
107 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng4206yu 2009-03-19
  • 打赏
  • 举报
回复
1.有几个定义的宏会搞定....http://blog.chinaunix.net/u/10219/showart_288821.html
Allen_zhang 2009-03-19
  • 打赏
  • 举报
回复
1、可变参数
主要是va_list 和 va_start这两个宏

void f(const char *formats, ...)
{
va_list arglist;
va_start(arglist, lpFormat);

CString strMsg = _T("");
strMsg.FormatV( lpFormat, arglist );

// 下面就将strMsg输出就可以了
}



2、要增加前缀,在strMsg中增加即可
  • 打赏
  • 举报
回复
formats还没真正用过。。过来学习

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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