在调试程序的时候,经常会添加很大打印语句上去,有时候加多了,自己都看不懂了,这个时候我们可以在将文件名、函数名、行号一起打印出来,方便我们定位,但是如果每个打印语句都加上这几句话,又会非常麻烦,我们又可以定义一个printf的宏,今天突然忘记怎么写了,想了好一会才写对,还是记下来吧,防止那天又忘记了:
#include "stdio.h"
#define DBGMSG(fmt, args...) printf("%s(%d), %s: " fmt "\n" , __FILE__, __LINE__, __FUNCTION__, ## args)
void main()
{
int i = 1;
DBGMSG("test");
DBGMSG("i = %d", i);
}
上面函数执行结果:
printf_test.c(8), main: test
printf_test.c(9), main: i = 1