宏名称扩展为字符串c / C ++

时间:2012-10-11 11:32:41

标签: c++ c

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

示例:

#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 __ 不存在......

1 个答案:

答案 0 :(得分:4)

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