《打印调试》

1.在linux编译中提示引用未定义的_FILE_等宏?

要使用__FILE__。注意是双下划线,书上很多连在一起会误以为是单下划线。

2.使用#ifdef DEBUG

在编译的时候要加上-DDEBUG选项

#include <stdio.h>

#ifdef DEBUG
#define DBG_PRT(format)  
printf("FILE:%s LINE:%d "format"
", __FILE__, __LINE);
#endif

#ifndef DEBUG
#define DBG_PRT(format)
#endif

int main()
{
  DEG_PRT("***********");
  return 0;       
}

运行带调试的:gcc -DDEBUG *.c
运行不带调试的:gcc *.c

#ifdef DEBUG_XD
#define DBG_PRT(x,format,...)
do{
if(x == DBG_ON) printf("FILE: %s FUNC: %s LINE: %d "format" ",__FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
}while(0);

#else
#define DBG_PRT(x,format,...)
#endif
#endif /* TRACE_H_ */

原文地址:https://www.cnblogs.com/zhuangquan/p/10877445.html