我想要一个像这样工作的调试函数宏:
int myVar = 5;
PRINTVAR(myVar); // macro
// which expands to something like...
print("myVar: ");
println(myVar);
Run Code Online (Sandbox Code Playgroud)
基本上,我想将标识符用作字符串文字和变量.
当我想将大量变量转储到stdout时,我只是有点厌烦重复自己.
我的愚蠢尝试,当然不起作用:
#define PRINT_VAR(x) Serial.print("x: "); Serial.println(x);
Run Code Online (Sandbox Code Playgroud)
这可能吗?
caf*_*caf 10
"stringizing operator"就是针对这种情况而设计的:
#define PRINT_VAR(x) (print(#x ": "), println(x))
Run Code Online (Sandbox Code Playgroud)