2011-12-15 48 views
4

可能重复:
C/C++ source file after preprocessing如何理解充满宏的大型C/C++代码?

有一天,我被分配一个任务来修复错误在一个大的C/C++项目VC++ 8下开发的问题是,这代码实际上充满了嵌套的宏。 明白这个代码的最佳方法是什么?任何建议表示赞赏。

+5

http://stackoverflow.com/questions/277258/c-c-source-file-after-preprocessing – 2011-12-15 21:38:43

+0

这不属于*程序员*吗? – bitmask 2011-12-15 21:47:29

+1

这不是一个确切的联系问题。 – Pubby 2011-12-15 21:48:50

回答

3

通过使用编译器行选项/E,构建将输出所有预处理器输出到标准输出。这个文件将包括所有扩展的宏,以及所有包含扩展内联的宏。您需要找出添加此标志的最佳方式,具体取决于您如何构建项目。通过输出,您可以更好地了解宏的扩展情况,但将输出追溯到哪个宏扩展它仍然会很棘手。但是,你应该能够弄清楚。 Reference for the command line options for VS8.0 compiler

正如在评论中指出,这是一个重复,这里是更好的答案:https://stackoverflow.com/a/277362/192896

3

我觉得你首先需要了解一下宏做的,然后试着去了解后的代码做什么宏被扩展。希望每个宏或者一小组宏都能够从定义和/或注释中找出某种意义。

虽然你可以通过预处理器运行代码,但通常会给你一个相当无差别的质量(没有评论),可能很难理解。