調試打印宏級聯問題在C-源完全禁用調試輸出, 我通常定義以下簡單的宏#1與下GCC
#define dprintf(args)
要啓用調試輸出,我定義宏#2替換地
#define dprintf(args) printk##args
在源的使用是這樣的:
如果我使用dprintf(("Irqs:%lu\n",irqs));
預處理器應該創建以下行的宏#2
printk("Irqs:%lu\n",irqs);
在Windows環境下的Visual C++,是沒有問題的。
下是NetBeans IDE 6.8, 使用gcc版本4.4.1(Ubuntu的4.4.1-4ubuntu9)我得到了以下錯誤消息:
"printk" and "(" does not give a valid preprocessing token
我試過的Linux
下以下#define dprintk(args...) printk(args)
這僅適用於 dprintf("Irqs:%lu\n",irqs);
的Visual C++但是不知道args...
我必須在Windows上編譯 和Linux(386)平臺的源代碼或者。
有沒有人有想法?