目前我正在使用 LPC,它使用与 C 相同的预处理器。我们有一个如下宏:
#define UT_TRUE(exp) _UT_TRUE(exp, "##exp")
但现在我们有一个 exp 为:
UT_TRUE(map["true"])
所以它变成:
_UT_TRUE(map["true"], "map["true"]")
exp 变为 "map[" true "]" 并且 true 未定义。
有什么技巧可以解决问题吗?
试试这个,希望这有帮助,..
#define UT_TRUE(exp) _UT_TRUE(exp, #exp)
可以参考。。
http://gcc.gnu.org/onlinedocs/gcc-4.3.4/cpp/Stringification.html