<分区>
我不需要用于实际执行重构的工具,而是用于查找和建议潜在重构的工具。特别是用于识别相似代码块并可以合并到实用函数中的工具。
这里的背景是我被要求调查减少嵌入式 C 系统的代码大小。这个任务似乎主要分解为删除不需要的代码(死代码)和合并重复的代码。各种类似 lint 的工具会找到死代码。但我仍然需要找到重复代码的方法。
标签 c refactoring
<分区>
我不需要用于实际执行重构的工具,而是用于查找和建议潜在重构的工具。特别是用于识别相似代码块并可以合并到实用函数中的工具。
这里的背景是我被要求调查减少嵌入式 C 系统的代码大小。这个任务似乎主要分解为删除不需要的代码(死代码)和合并重复的代码。各种类似 lint 的工具会找到死代码。但我仍然需要找到重复代码的方法。
最佳答案
我建议看一下 PMD's Copy Paste Detector .虽然它默认为 Java 代码,但它也支持 c++、php 和 ruby。
PMD 在词法基础上执行此操作,并且有几个选项可以忽略代码中的常量。更好的代码重复检测器构建 AST,并比较相似的树。 AST 方法更好,因为格式和变量名不会影响结果。
关于c - 有哪些工具可以建议潜在的重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2053319/