#define __log(...) \
do \
{ \
printf(__VA_ARGS__); \
} while(0)
#define __format(__fmt__) "%d " __fmt__ "\n"
#define log(__fmt__, ...) \
do \
{ \
__log(__format(__fmt__), __LINE__,__FILE__,##__VA_ARGS__); \
}while(0)
#include <stdio.h>
void main() {
log("Hello %s", "world");
getchar();
}
将日志输出的行号和文件详细打印出来,方便debug调试
方法二
//定义LOG宏来记录代码位置中一些信息,程序员可以根据stderr产生的日志追索到代码中产生
//这些记录的位置。引入这样的特性,对于轻量级调试,简单的错误输出都是有积极意义的
#define LOG(...) {\
fprintf(stderr,"%s:line %d:\t",__FILE__,__LINE__);\
fprintf(stderr,__VA_ARGS__);\
fprintf(stderr,"\n");\
}
int main()
{
int x = 3;
LOG("x = %d", x);
getchar();
}