c - 查找文件的两个修订版之间的功能更改(编译差异?)

标签 c merge diff

我正在寻找一种工具来检查两个 (C) 源代码文件是否生成相同的二进制文件,以便我可以找到两个文件之间的实际功能变化,而忽略单纯的编码风格变化。 如果这甚至适用于不同变更集的文件,那就太好了,这样一个文件可能在某些地方的编码风格发生了变化,但也添加了一个功能补丁。

最佳答案

很难编写一个程序来计算另一个程序的“功能”结果。这样的程序听起来似乎是必要的。我猜计算机程序本身是正确的,我们甚至必须以最紧凑和机器可读的方式来描述功能,因此很难编写一个程序来分析程序并生成“更好”的描述。

以某种方式抽象和“理解”编码风格差异不会影响功能听起来也非常非常困难。我发现以某种方式手动阅读其他人的代码时很难,因为风格差异可能非常大,即使最终结果可能与“我的风格”相同。

如果解决方案不需要解决 halting problem 问题,我会感到惊讶,这在一般情况下被证明是不可能的。

关于c - 查找文件的两个修订版之间的功能更改(编译差异?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873185/

相关文章:

c - 链表初始化

Mercurial:分支特定的更改在虚拟 merge 后不断出现

c - 在C中合并两个已排序的字符串数组

c# - 在 HTML 中显示 gnu diff

java - 返回值周围的括号 - 为什么?

c - 如何从开源包中检索一般信息,关注 poker-eval 库

c - Linux 模块 : performance counter does not work

Git merge 两个本地分支

php - 标点符号的字符串差异 : is preg_split the answer?

php - 比较两个目录,哪个目录具有每个文件的最新版本?