撰寫程式, 不論是為了除錯, 或是了解程式運作的狀態, 需要在程式代碼中 加進一些 log.
一旦加入 log, 當然也需要一個開啟和關閉 log 的機制. 而且必須是一個方便使用的開關機制.
一般來說, 我們可能會使用 以下的方式在程式代碼中加入 log
#define MY_DEBUG
.......
#ifdef MY_DEBUG
printf("This is a log.\n");
#endif
.......
使用 MY_DEBUG 控制 log 機制的開啟和關閉.
這種做法的缺點是 加入 log 的同時也必須跟著加入 #ifdef 和 #endif. 撰寫上不方便 且程式代碼會看起來比較凌亂.
另一種比較好的做法如下:
#define XPRINTF(fmt,...) printf(fmt, __VA_ARGS__)
在需要加 log的地方, 現在只需要加入一行:
XPRINTF("This is %d-th log,\n", i);
若是需要關閉 log, 只需要修改 #define 的部分:
#define XPRINTF(fmt,...) // printf(fmt, __VA_ARGS__)
以上是 Visual Stuio 的語法, gcc 的語法如下:
#define XPRINTF(fmt, arg...) LOGD(fmt, ##arg)
或是
#define XPRINTF(fmt, arg...) printf(fmt, ##arg)
沒有留言:
張貼留言