如何让有可变参数的函数调用另外一个可变参数函数?【恢复】
比如:oldPrintf (int a, int b, char * fmt, ...)
{
/* do something...*/
}
newPrintf (char * fmt, ...)
{
va_list param;
oldPrintf (10,100, fmt,param);
}
此时编译可以通过但是结果是错的,大侠们有什么办法没? 被调用的带参数函数将运行结果用return返回结果给调用的函数,或者直接使用全局变量。
不理解!
newPrintf (char * fmt, ...)
{
va_list param;
va_start(param,fmt);
oldPrintf (10,100, fmt,param);
va_end(param);
}
实验了一下,不行!编译没有问题,但是运行结果是错误的。我用下面的程序试的:
#include "stdafx.h"
#include <stdarg.h>
void newPrintf (const char * fmt, ...)
{
va_list param;
va_start(param,fmt);
printf(fmt,param);
va_end(param);
}
int main(int argc, char* argv[])
{
newPrintf("Hello %d\n",2009);
return 0;
}
结果为:
Hello 1244976 newPrintf (char * fmt, ...)
{
va_list param;
va_start(param,fmt);
oldPrintf (10,100, fmt,param);
va_end(param);
} 被调用的带参数函数将运行结果用return返回结果给调用的函数,或者直接使用全局变量。
页:
[1]