扩展宏以进行调试?

时间:2018-05-04 16:12:30

标签: c++ c visual-c++ visual-studio-2017

我是使用宏功能的新手,我知道在操作顺序方面它们的使用存在一些缺陷。有没有办法在预处理器经过它之后扩展宏,这样我才能看到它的样子?

在VS2017中,我尝试过处理器> C / C ++>预处理器>对文件进行预处理,创建一个*.i文件,但它大约有50k行,我似乎无法找到我的宏扩展到的位置。

编辑:我知道宏是坏消息,但是,我正在使用的代码库使用它们相当多,所以我试图更好地理解它们。

1 个答案:

答案 0 :(得分:3)

  

在VS2017中,我尝试过处理器> C / C ++>预处理器>预处理创建* .i文件的文件,但它的长度约为50k行,我似乎无法找到我的宏扩展到的位置。

您可以通过在使用宏的行之前声明一个虚拟变量来帮助自己。

E.g。

extern int dummyIntVariable;
MY_COMPLICATED_MACRO(arg1, arg2);

之后,您在.i文件中查找dummyIntVariable。它下面的行将包含MY_COMPLICATED_MACRO展开的内容。

或者@Sneftel在评论中指出,您可以使用任何旧字符串来帮助您浏览.i文件。

THIS IS A UNIQUE STRING
MY_COMPLICATED_MACRO(arg1, arg2);

由于文件只是预处理,因此也应该有效。

相关问题