《打印调试》
1.在linux编译中提示引用未定义的_FILE_等宏?
要使用__FILE__。注意是双下划线,书上很多连在一起会误以为是单下划线。
2.使用#ifdef DEBUG
在编译的时候要加上-DDEBUG选项
#include <stdio.h> #ifdef DEBUG #define DBG_PRT(format) \ printf("FILE:%s LINE:%d "format"\n", __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"\n",__FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
}while(0);
#else
#define DBG_PRT(x,format,...)
#endif
#endif /* TRACE_H_ */