我想在宏扩展中使用宏的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 __ 不存在......
答案 0 :(得分:4)
我相信这是不可能的。我的建议是创建另一个宏,它将宏的名称作为参数。然后在其他宏中使用此宏。