C中调试,肯定要有输出。而自带的输出总是不够方便:
- 打开时输出太多。
- 不知道是哪里输出的。
这个时候,需要自定义宏。自定义宏最麻烦的问题,怎么自带参数呢?吾有专用范例介绍给大家:
(__FUNCTION__如果没有,可以使用__func__)
1.//不同平台输出,只要改一句即可。也可以通过ifdefine处理。 #define WX_LOG_PRINT wx_print //为了简单化。 //有时间戳功能输出。 #define WX_LOG_HEAD char timetext[64]; timestampText(timetext); WX_LOG_PRINT("%s:%s(%4d)" #define WX_LOG_TAIL "\n", timetext, __FUNCTION__, __LINE__ #define WX_LOG_NEWLINE() {WX_LOG_PRINT("\n" );} #define WX_LOG_HERE() {WX_LOG_HEAD WX_LOG_TAIL );} #define WX_LOG_INFO(FMT, ...) {WX_LOG_HEAD " " FMT WX_LOG_TAIL, ##__VA_ARGS__ );} #define WX_LOG_TEXT(TEXT) {WX_LOG_HEAD " " "%s" WX_LOG_TAIL, TEXT );} #define WX_LOG_INT(INT) {WX_LOG_HEAD " " "%d" WX_LOG_TAIL, INT );} //channel有多个,想知道是那个输出的,所以增加一个宏,channel->tag_name。语法如下: #define WX_LOG_CHANNEL(FMT, channel, ...) LOG_INFO("%s " FMT, channel->tag_name, ##__VA_ARGS__)
print是可以输出日志的函数,不同平台更换。
带有时间错、函数名、行号,在开发阶段特别方便。
相信能给需要的朋友带来便利。