0

我想在 arduino 中进行某种详细的调试打印,可以通过标志启用/禁用。例如,我希望能够做类似的事情

#define VERBOSE
#define VERBOSE_PRINT(text) #ifdef VERBOSE Serial.println(text); #endif

稍后在代码中:

VERBOSE_PRINT("Doing something");

如果 VERBOSE 已定义,那么我应该通过串行端口获取内容,如果未定义,则不会编译该代码。不幸的是,这不起作用。我收到错误消息:“错误:'#' 后面没有宏参数”。所以我想知道获得可选编译的打印(或任何相关内容)的最佳方法是什么。当然,我可以手动写出#ifdefs,但我希望它精简,这样它就不会占用大量空间,所以我不必每次想使用它时都写出来。函数内部带有#ifdef 的函数是执行此操作的最佳方法吗?

4

1 回答 1

0
#define VERBOSE

#ifdef VERBOSE
#define VERBOSE_PRINT(str) Serial.println(str)
#else
#define VERBOSE_PRINT(str)
#endif

VERBOSE_PRINT("Doing something");
于 2013-09-24T01:03:20.120 回答