您的位置:首页 > 编程语言 > C语言/C++

C/C++ 变参函数代码

2011-03-24 13:37 267 查看
一。void log(const char *format, ... )
{
char p[1024];
va_list va;
va_start(va, format);
vsprintf(p,format,va);
va_end(va);
}

二。void log(const char *fmt, ... )
{
va_list ap;
int d;
char c, *p, *s;
string strTemp;
/*char sT[1020] = {0};
sprintf(sT,fmt);*/
va_start(ap, fmt);
while (*fmt)
{
char sTemp[1020] = {0};
switch(*fmt++)
{
case 's': /* string */
s = va_arg(ap, char*);
sprintf(sTemp,"%s",s);
strTemp += sTemp;
break;
case 'S': /* string */
s = va_arg(ap, char*);
sprintf(sTemp,"%s",s);
strTemp += sTemp;
break;
case 'd': /* int */
d = va_arg(ap, int);
sprintf(sTemp,"%d",d);
strTemp += sTemp;
break;
case 'D': /* int */
d = va_arg(ap, int);
sprintf(sTemp,"%D",d);
strTemp += sTemp;
break;
case 'c': /* char */
c = va_arg(ap, int);
sprintf(sTemp,"%c",c);
strTemp += sTemp;
break;
case 'C': /* char */
c = va_arg(ap, int);
sprintf(sTemp,"%C",c);
strTemp += sTemp;
break;
case 'x': /* char */
c = va_arg(ap, int);
sprintf(sTemp,"0x%x",c);
strTemp += sTemp;
break;
case 'X': /* char */
c = va_arg(ap, int);
sprintf(sTemp,"0x%X",c);
strTemp += sTemp;
break;
default:
break;
}
}
va_end(ap);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: