C++ 打印使用参数定义的方法名称

C++ 打印使用参数定义的方法名称,c++,.net,visual-c++,dev-c++,C++,.net,Visual C++,Dev C++,我们正在使用一种方法 #define CM_VALUE_1 CM_Method(3001) CM_方法是在同一文件中定义的方法 我只想在vc++中使用CM\u VALUE\u 1打印CM\u方法(3001),间接使用stringize预处理器操作符来获取所需内容 #define MAKE_STR(X) #X #define MAKE_STR2(X) MAKE_STR(X) std::cout << MAKE_STR(CM_VALUE_1

我们正在使用一种方法

#define CM_VALUE_1                       CM_Method(3001)
CM_方法是在同一文件中定义的方法


我只想在vc++中使用
CM\u VALUE\u 1
打印
CM\u方法(3001)
,间接使用stringize预处理器操作符来获取所需内容

#define MAKE_STR(X) #X
#define MAKE_STR2(X) MAKE_STR(X)

std::cout << MAKE_STR(CM_VALUE_1)
          << " is " << MAKE_STR2(CM_VALUE_1)
          << std::endl;

如果
MAKE_STR2
的参数本身是一个宏,则在调用
MAKE_STR
时会将其展开,因此结果是将参数定义为的字符串化,而不是宏名称本身。

间接使用字符串化预处理器操作符来获取所需内容

#define MAKE_STR(X) #X
#define MAKE_STR2(X) MAKE_STR(X)

std::cout << MAKE_STR(CM_VALUE_1)
          << " is " << MAKE_STR2(CM_VALUE_1)
          << std::endl;

如果
MAKE_STR2
的参数本身是一个宏,则在调用
MAKE_STR
时会将其展开,因此结果是将参数定义为的字符串化,而不是宏名称本身。

您能给出一个所需用法的示例吗?@abhi
ifdef CM_VALUE\u 1 std::cout Sorry,我们不能直接打印,我们必须使用CM_值打印“CM_方法(3001)”only@abhi294074,您能否将其定义为“CM_方法(3001)”
?你所需要的是
std::难道你已经问了7个问题而没有接受一个答案吗。你不喜欢被帮助吗?你能给出一个想要使用的例子吗?@abhi
#ifdef CM_VALUE_1 std::对不起,我们不能直接打印,我们必须使用CM_VALUE_1打印“CM_方法(3001)”only@abhi294074,您能否将其定义为“CM_方法(3001)”
?你所需要的是
std::难道你已经问了7个问题而没有接受一个答案吗。你不喜欢别人的帮助吗?