[讨论] 如何用function来包像printf这种function

楼主: MaxHaru (懂得放手..才是王道)   2016-02-28 16:22:31
各位好,
像printf这类参数不定的function,
要如何用另一个参数不定的function来包呢?
Ex: printf(const unsigned char *fmtstr, ...)
如果我要用类列下列的参数不定function来包printf()要如何完成呢?
Ex: Func(const unsigned char *str, ???)
{
unsigned char buf[80];
sprintf(buf, str, ???);
printf("%s Test\n", buf);
}
需要有什么特殊的方法吗?
请各位多多赐教..
作者: LPH66 (-6.2598534e+18f)   2016-02-28 16:24:00
#include <stdarg> /* C header, C++ 用 <cstdarg> */然后用吃 va_list 参数的里层函数接外层的不定参数
作者: a1b2c3d4e5x (int *lpnArr, int nSize)   2016-02-28 16:26:00
搜寻可变参数或 va_list 之类的
作者: LPH66 (-6.2598534e+18f)   2016-02-28 16:26:00
printf/scanf 系函式都有对应的 v 版, 函式前面加个 v 即是例如 vsprintf, vscanf 等等
作者: Caesar08 (Caesar)   2016-02-28 16:28:00
如果是C++,可以参考Parameter pack或variadic template

Links booklink

Contact Us: admin [ a t ] ucptt.com