我花了很多时间来浏览和编辑错综复杂的科学C代码。通常它们包含数百个使用预处理器指令打开和关闭的可选功能。这使得几乎不可能一目了然地说明当前设置中是否激活了当前代码块。代码本身并没有帮助,因为每个特征都在整个地方都被污染了,而且通常都是使用全局变量完成的。
是否有IDE可以通过折叠/着色非活动代码来处理预处理器指令?
我想我可以使用已使用标志的配置来维护一个项目,并且不会受到非活动逻辑分支的困扰。
答案 0 :(得分:8)
看看similar question,似乎Eclipse CDT具有您需要的功能,the other question实际上告诉您可以设置ifdef的位置。
Emacs has something similar,格式为hide-ifdef-mode
。
但您也可以尝试使用与IDE无关的解决方案,例如通过unifdef
运行代码并使用结果。如果您只需要阅读代码,那么它几乎是完美的解决方案。如果您需要进行一些更改,事情会变得有点复杂,但您可以使用git来管理更改,例如:
unifdef
当然,这种方法是否有效取决于特定的代码库以及您将如何处理它,但在某些情况下它可能很有用。
答案 1 :(得分:2)
我使用带有几个插件的Vim作为我的首选IDE(谢谢Steve Francia)。这可能不是你的一杯茶,但如果是的话,我发现了一些建议来实现这一点。
答案 2 :(得分:1)
我还没有在任何IDE中听说过这个功能。但你仍然可以使用 经过预处理的代码后才能使用。 Can gcc output C code after preprocessing?