直接上代码
#include <stdarg.h>
void logd(std::string tag, const char* str, ...)
{
va_list a_list;//变参 stdarg.h
va_start(a_list, str);
if (!tag.empty())
printf("[ %4s] [ %-8s]: ", "INFO", tag.c_str());//c_str为转化为c语言传统的char *
vprintf(str, a_list);
va_end(a_list);
}
这些函数全部来自于stdarg.h
库
va_start(a_list, str)
表示从str后开始读取变参列表到a_list。
调用vprintf
的时候,str
作为format,即格式化输出控制用的字符串,a_list
作为可变长度的参数。
最后va_end(a_list)
释放变参列表