当前位置: 代码迷 >> 综合 >> 使用可变参数的方法记录log
  详细解决方案

使用可变参数的方法记录log

热度:68   发布时间:2024-01-21 19:32:36.0

使用可变参数的方法记录log

void foo(char *fmt, ...)
{
va_list ap; 
int d;
char c, *s; 
va_start(ap, fmt);
while (*fmt)
{   
if(*(fmt - 1) == '%')
{   
switch (*fmt) 
{   
case 's': /* string */
s = va_arg(ap, char *); 
fprintf(fd,"%s", s); 
break;
case 'd': /* int */
d = va_arg(ap, int);
fprintf(fd,"%d", d); 
break;
case 'c': /* char */
/* need a cast here since va_arg only takes fully promoted types */
c = (char) va_arg(ap, int);
fprintf(fd,"%c", c); 
break;
}   
}   
else
{   
if(*fmt!='%')  
fprintf(fd,"%c",*fmt);  
}   
fmt++;
}   
va_end(ap);
}
这样可以方便的记录log了

  相关解决方案