「int printf(const char * format, ...)」问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:39:27
我也想编个函数,像printf一样带「...」的(参考资料:http://bbs3.chinaunix.net/thread-375475-1-1.html),并使之能接受任意有限个参数。但我不知怎样用,那为知情人给些指点?

有简单,用va_list
#include<stdio.h>
#include<stdarg.h>
int sum(int n,...)//简单求和的一个函数,n为需要求和的个数
{
int sum=0;
int i;
va_list va;
va_start(va,n);
for(i=0;i<n;i++)
sum+=va_arg(va,int);
va_end(va);
return sum;
}
int main()
{
printf("%d\n",sum(3,1,2,3));//简单测试
return 0;
}

给你一段我写的模拟MFC TRACE的代码
void MyTraceA(const char* format, ...)
{
va_list marker;
char buffer[1024];

va_start( marker, format );
vsprintf(buffer, format, marker);
va_end( marker );
OutputDebugString(ACE_TEXT_CHAR_TO_TCHAR(buffer));
}