gpt4 book ai didi

c++ - 扩展宏进行调试?

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:47 25 4
gpt4 key购买 nike

我是使用宏函数的新手,我知道在使用宏函数时在操作顺序方面存在一些缺陷。有没有一种方法可以在预处理器处理完宏后展开它,以便我可以看到它的样子?

在 VS2017 中,我尝试了 Processor > C/C++ > Preprocessor > Preprocess to a file that creates an *.i file 但它大约有 50k 行长,我似乎找不到我的宏扩展到的地方。

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

最佳答案

In VS2017, I've tried Processor > C/C++ > Preprocessor > Preprocess to a file which creates an *.i file but it's around 50k lines long and I can't seem to find where my macro was expanded to.

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

例如

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);

由于文件只是经过预处理,因此应该也可以。

关于c++ - 扩展宏进行调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50179181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com