3

我想在宏扩展中使用宏的名称作为字符串。

例子:

#define DEBUG_TEST(a, ...) printf("DEBUG_TEST::%s (%d) : " a, __FUNCTION__, __LINE__, ##__VA_ARGS__)

想要在扩展中更改为不再需要“DEBUG_TEST”的东西,但类似于:

#define DEBUG_TEST(a, ...) printf(__MACRO__ "::%s (%d) : " a, __FUNCTION__, __LINE__, ##__VA_ARGS__)

当然在我的例子中__ MACRO __不存在......

4

1 回答 1

4

我相信这是不可能的。我的建议是创建另一个以宏名称作为参数的宏。然后在你的其他宏中使用这个宏。

于 2012-10-11T11:38:57.353 回答