曲径通幽

programming_with_fun();

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  18 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

常用链接

留言簿(6)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

@note: 只在windows中测试,未在linux上跑过
方法一: 通过宏传递
例如
void myprintf(const char* format, );

3 #ifndef PASS_ARGS
#define PASS_ARGS(_fmt,) \
5   myprintf(fmt,__VA_ARGS__)
#endif

这种方式最简单最直接,但不利于函数的封装调用。

方法二: 通过函数传递
 2 
 3 void myprintf(const char* fmt, )
 4 {
 5     va_list args;
 6     va_start(args, fmt);
 7     myprintf_internal(fmt, args);
 8     va_end(args);
 9 }
这种方法可以在函数内传递 va_list

至于 myprintf(const char*, ...) 传给 myprintf_internal(const char*, ...)这种方式,貌似只能通过循环解析出实参个数和内容,再传递给下一个函数,感觉上这样做可能会存在性能损耗
posted on 2012-06-05 17:53 Meiosis 阅读(1681) 评论(0)  编辑 收藏 引用 所属分类: Windows GenericWork Experience

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理