Powered by and 圖示來源

2009年4月9日 星期四

寫程式.. 常常會用一個開關來控制debug message

通常會有幾種寫法。

1.用一個function包起來, 在function中決定訊息流向.

void dbgprint(const char *format, ...)
{
    va_list arg;

    va_start(arg, format);
    vsnprintf(rule_buf+strlen(CMD_NAME), BUF_SIZE, format, arg);
    va_end(arg);

    if(debug)
        fprintf(fw_rule_fp,"%s\n",rule_buf);
}


2.用定義來決定function
#if 0
    #define DBG printk
#else
    #define DBG
#endif


就程式而且,第二個方法速度快而且code size會比較小,除非有什麼其它需要,通常來說會用第二種。

廣告




第二種又有一些變型。 直接把目前覺得最棒的變形記下來。

#if DEBUG
    #define DBG(args...) printk(args)
#else
    #define DBG(args...)
#endif

在Makefie 中
CFLAGS += -DDEBUG

0 留言:

張貼留言

有話就說,才是真性情!

總網頁瀏覽量