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);
}
{
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);
}
相关文章推荐
- C++ - 继承虚函数调用 代码
- strstr()函数c++代码实现实例及运行结果
- C++反汇编代码分析--函数调用
- ◆ C++中通过溢出覆盖虚函数指针列表执行代码
- c/c++/MFC 调用 js 函数代码
- 一个非常简洁有效的判断IP地址格式是否正确的函数,c++代码
- 编写一个函数,实现把C/C++程序代码中的注释去掉,并把结果返回。
- 看懂下面C++代码才说你理解了C++多态虚函数!
- C++实现修改函数代码HOOK的封装方法
- strstr()函数c++代码实现实例及运行结果
- c++反汇编代码分析--偷调函数
- c++——虚函数例子代码
- C++ - 标准库 "merge" 函数 的 用法及代码
- c++截取屏幕图片并保存(函数代码实现)
- 跟踪 android c++代码崩溃函数栈
- JAVA和C++中获取当前函数名,文件名和代码行
- strstr()函数c++代码实现实例及运行结果
- C++反汇编代码分析--函数调用
- MFC下实现 灰度图像显示函数代码 C++
- C++ - 标准库 "merge" 函数 的 用法及代码