c语言log中常用宏介绍
我们在开发过程中,不可避免需要增加调试log,不可避免的需要使用下面宏定义,使我们的log更加清晰有条理。
LINE:行号 使用%d控制输出
DATE:日期 使用%s控制输出
FILE:文件路径 使用%s控制输出
TIME:时间 使用%s控制输出
FUNCTION:调用函数 使用%s控制输出
这些宏不需要定义,编译器就可以识别,我们不需要纠结,只要知道使用即可。
下面是我在Linux和rtos中做的测试,代码很简单,直接使用宏均不会出现问题。
linux(ubuntu测试):
#include <stdio.h>
void main(void)
{
printf("test macro definition start\n");
printf("[%s][%d][%s][%s][%s]\n",__FUNCTION__,__LINE__,__DATE__,__FILE__,__TIME__);
printf("test macro definition end\n");
}
程序输出:
rtos(开发板中测试,截取代码):
printf("[%s][%d][%s][%s][%s]MSC CTL INIT\n",__func__,__LINE__,__DATE__,__FILE__,__TIME__); //__func__宏定义 #define __func__ __FUNCTION__
程序输出: