c++ - 打印您使用参数定义的方法名称

标签 c++ .net visual-c++ dev-c++

我们正在使用一种方法

#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/

相关文章:

c++ - 在makefile中添加头文件和相关修改

c# - 图片上传不损失质量

visual-c++ - 使用 YAML 在本地构建 Azure DevOps 管道

visual-studio-2010 - Visual Studio 2010 C++ 智能感知错误

c++ - C++中的getline是否只接受字符串类型?

c++ - Armadillo C++ 找不到矩阵求逆

在 T 的静态成员中使用 sizeof(T) 的 C++ 错误

.net - 保存和恢复表单位置和大小

c# - 如何在文件的一部分上使用 DeflateStream?

c++ - IntelliSense 无法打开源文件