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是可以輸出日志的函數,不同平台更換。
帶有時間錯、函數名、行号,在開發階段特别友善。
相信能給需要的朋友帶來便利。