[请教] 如何写参数个数不确定的函数
比如printf,参数个数不确定,要使用_cdecl ,调用者负责把参数弹出栈.那么实际中应该如何写呢,比如要实现一个void _cdecl print (int n,int value1,int value2,...int value n),函数将n个数输出就行了,或者随便怎么都行,我只是想了解此类函数的处理方式,能麻烦高手写出来吗?
[解决办法]
一种容易的实现方法,模仿main函数的参数传递
传递数组,而其中不传递维数,在函数内部定个判断准则
int fun(char **argv)这样子
[解决办法]
void print_trace(const char *fmt...)
{
#ifndef NO_TRACE
//if (tracefile!=NULL && P1.pc1()> 453300) {
if (tracefile!=NULL)
{
va_list ap;
va_start(ap, fmt);
vfprintf(tracefile, fmt, ap);
va_end(ap);
}
#endif
}
[解决办法]
printf就是去栈中取参数.根据ebp的值
[解决办法]
http://community.csdn.net/Expert/topic/5325/5325070.xml?temp=.4043238