我目前正在完成一个库,并希望我的“调试”日志功能在编译时是可选的。
我的想法是:检查是否DEBUG
已定义,然后定义我的自定义debug
函数。
这是我所做的(部分)
#if defined(DEBUG)
#define debug(s) Serial.println(s)
#define debug(s,t) Serial.print(s);Serial.println(t)
#else
#define debug(s) // s
#define debug(s,t) // s t
#endif
(我正在为 Arduino 编译;这就是为什么我需要将函数一分为二。)
由于我使用了很多时间,Serial.print
随后是 a Serial.println
,我想要那个debug(s)
,也接受了两个“参数”。
因此,插入debug("ParamOne");
anddebug("ParamOne", "ParamTwo");
将导致定义的函数。
但是,显然,只有最后定义的调试是有效的,覆盖了第一个。
我应该怎么做,以保持函数的相同名称,或者有什么更“正确”的方法吗?