Debugging arduino中的详细调试打印?

Debugging arduino中的详细调试打印?,debugging,arduino,preprocessor,Debugging,Arduino,Preprocessor,我希望在arduino中有某种详细的调试打印,可以通过标志启用/禁用。例如,我想要做一些事情的能力,比如 #define VERBOSE #define VERBOSE_PRINT(text) #ifdef VERBOSE Serial.println(text); #endif 后面的代码: VERBOSE_PRINT("Doing something"); 如果定义了VERBOSE,那么我应该通过串行端口获取内容,如果没有定义,那么代码就不会被编译。不幸的是,这不起作用。我得到错误:“e

我希望在arduino中有某种详细的调试打印,可以通过标志启用/禁用。例如,我想要做一些事情的能力,比如

#define VERBOSE
#define VERBOSE_PRINT(text) #ifdef VERBOSE Serial.println(text); #endif
后面的代码:

VERBOSE_PRINT("Doing something");

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

谢谢您的建议。似乎对数字有效,但对文本无效。我不太清楚这有什么意义,但这是我得到的结果。例如,详细打印(12345);详细打印(“测试”)结果:12345
#define VERBOSE

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

VERBOSE_PRINT("Doing something");