Чтобы полностью отключить вывод отладки в c-source, я обычно определяю следующий ПРОСТОЙ макрос #1
#define dprintf(args)
Чтобы включить отладочный вывод, я альтернативно определяю макрос № 2
#define dprintf(args) printk##args
Использование в источнике выглядит так:
dprintf(("Irqs:%lu\n",irqs));
Препроцессор должен создать следующую строку, если я использую макрос № 2
printk("Irqs:%lu\n",irqs);
Под Windows Visual C++ проблем нет.
Используя gcc версии 4.4.1 (Ubuntu 4.4.1-4ubuntu9) в NETBEANS IDE 6.8, я получил следующее сообщение об ошибке:
"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).
У кого-нибудь есть идея?