2

目前我正在使用 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 未定义。

有什么技巧可以解决问题吗?

4

1 回答 1

4

试试这个,希望这有帮助,..

#define UT_TRUE(exp) _UT_TRUE(exp, #exp)

可以参考。。

http://gcc.gnu.org/onlinedocs/gcc-4.3.4/cpp/Stringification.html

于 2012-12-20T11:51:43.127 回答