C++ c++;在宏中获取宏名称

C++ c++;在宏中获取宏名称,c++,macros,C++,Macros,如何在宏中获取宏名称? 假设我们有: #include <iostream> using std::cout; using std::endl; #define MACRO() \ cout << __MACRO_NAME__ << endl int main () { MACRO(); return 0; } 做了一些研究,我认为C++中是可行的。p> 但你可以用这个: #define MACRO2(x) cout << #

如何在宏中获取宏名称? 假设我们有:

#include <iostream>
using std::cout;
using std::endl;

#define MACRO() \
cout << __MACRO_NAME__ << endl

int main () {
    MACRO();
    return 0;
}

做了一些研究,我认为C++中是可行的。p> 但你可以用这个:

#define MACRO2(x) cout << #x << endl
#define MACRO MACRO2(MACRO)

<代码> >定义宏2(x)cDUT,这背后的动机是什么?没有什么,只是出来,想知道C++是否能做到这一点。为什么不只是键入<代码>定义宏()?我知道其他的方法,但我只想知道,可以还是不能。好,这是可行的方法。所以我可以这样做:
#定义MACRO2(x,…)是的!但我仍然很困惑,在哪里可以使用它?只是为了显示调试时使用的宏,或者在使用批处理宏时指示宏名称,例如,在测试框架中。宏参数中的省略号是gcc扩展,而不是标准。
#define MACRO2(x) cout << #x << endl
#define MACRO MACRO2(MACRO)