abh*_*074 1 .net c++ dev-c++ visual-c++
我们正在使用一种方法
#define CM_VALUE_1 CM_Method(3001)
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
会导致
CM_VALUE_1 is CM_METHOD(3001)
Run Code Online (Sandbox Code Playgroud)
如果参数to MAKE_STR2本身是一个宏,则在调用时会扩展它MAKE_STR,因此结果是参数定义的字符串化,而不是宏名称本身.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |