我希望在C/C++中实现这个功能。我找到了可变长度参数,但是这个文档提供的解决方案涉及Python和C,使用了libffi。
现在,如果我想要用myprintf
封装printf
函数。
我可以按照以下方法进行:
void myprintf(char* fmt, ...)
{
va_list args;
va_start(args, fmt);
printf(fmt, args);
va_end(args);
}
int _tmain(int argc, _TCHAR* argv[])
{
int a = 9;
int b = 10;
char v = 'C';
myprintf("This is a number: %d and \nthis is a character: %c and \n another number: %d\n", a, v, b);
return 0;
}
但是结果并非如预期!
This is a number: 1244780 and
this is a character: h and
another number: 29953463
我错过了什么?
Variadic templates
的答案,你认为在C++11中有更好的方法吗? - Shafik Yaghmour