我们正在使用一种方法
#define CM_VALUE_1 CM_Method(3001)
CM_Method 是在同一文件中定义的方法。
我只想在 vc++ 中使用 CM_VALUE_1
打印 CM_Method(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;
会导致
CM_VALUE_1 is CM_METHOD(3001)
如果 MAKE_STR2
的参数本身是一个宏,它在调用 MAKE_STR
时被扩展,所以结果是参数定义的字符串化,而不是而不是宏名称本身。
关于c++ - 打印您使用参数定义的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009130/