加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

IDE for C项目中的预处理器感知代码导航

发布时间:2020-12-16 04:52:04 所属栏目:百科 来源:网络整理
导读:背景 我花了很多时间来浏览和编辑复杂的科学C代码.通常它们包含数百个使用预处理器指令打开和关闭的可选功能.这使得几乎不可能一目了然地说明当前的设置中是否激活了当前的代码块.代码本身并没有帮助,因为每个特征都在整个地方都被污染,而且通常都是使用全局
背景

我花了很多时间来浏览和编辑复杂的科学C代码.通常它们包含数百个使用预处理器指令打开和关闭的可选功能.这使得几乎不可能一目了然地说明当前的设置中是否激活了当前的代码块.代码本身并没有帮助,因为每个特征都在整个地方都被污染,而且通常都是使用全局变量完成的.

是否有一个IDE可以通过折叠/着色非活动代码来处理预处理器指令?

我想可以用一个使用过的标志配置来维护一个项目,并且不受非活动逻辑分支的困扰.

解决方法

看看 similar question看起来Eclipse CDT具有您需要的功能,the other question实际上告诉您可以设置ifdef的位置.

Emacs has something similar以hide-ifdef-mode的形式.

但您也可以尝试使用与IDE无关的解决方案,例如在unifdef中运行代码并使用结果.如果您只需要阅读代码,那几乎是完美的解决方案.如果您需要进行一些更改,事情会变得有点复杂,但您可以使用git来管理更改,例如:

>将整个代码库导入git
>通过unifdef
>提交结果,这是补丁的基础
>在您喜欢的任何IDE /编辑器中使用代码库,像往常一样提交更改
>如果需要为原始代码库生成补丁,只需检查原始导入提交并从您的分支机构挑选(或重新绑定)您的补丁(当然有可能发生冲突,但它应该很容易解析你知道你对补丁代码的预期更改,你只需要调整ifdefs)
>如果需要更新代码库,只需从原始导入开始,应用更新,提交,运行unifdef,然后在此基础上重新定义更改

当然,这种方法是否有效取决于特定的代码库以及您将要使用它做什么,但它在某些情况下可能很有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读