封装一个自己的打印函数
#include <stdio.h>
#include <stdarg.h>
#define DEBUG_BUF_MAX 4096
void debug_info(char *file, const char *func, unsigned int line, const char *fmt, ...)
{
int ret = 0;
char tmp[DEBUG_BUF_MAX] = { 0 };
char buf[DEBUG_BUF_MAX] = { 0 };
va_list ap;
va_start(ap, fmt);
vsnprintf(tmp, DEBUG_BUF_MAX - 1, fmt, ap);
snprintf(buf, DEBUG_BUF_MAX - 1, "[%s] (%s:%u):%s", file, func, line, tmp);
printf("%s",buf);
va_end(ap);
}
#define DEBUG_PRINT(fmt, ap...) \
debug_info(__FILE__, __FUNCTION__, __LINE__, fmt, ##ap);\
//printf("[%s:%d]" fmt "\n", __FUNCTION__, __LINE__, ##ap)
调用示例
void main(void)
{
DEBUG_PRINT("printf test %d\n",100);
}