我们正在使用一种方法
#define CM_VALUE_1 CM_Method(3001)
CM_Method 是在同一文件中定义的方法。
我只想在 vc++ 中CM_Method(3001)
使用打印CM_VALUE_1
我们正在使用一种方法
#define CM_VALUE_1 CM_Method(3001)
CM_Method 是在同一文件中定义的方法。
我只想在 vc++ 中CM_Method(3001)
使用打印CM_VALUE_1
间接使用 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)
如果参数 toMAKE_STR2
本身是一个宏,则在调用 时会对其进行扩展MAKE_STR
,因此结果是参数定义的字符串化,而不是宏名称本身。