[討論] 如何用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