代码之家  ›  专栏  ›  技术社区  ›  kjv

C文件比较实用程序[关闭]

  •  2
  • kjv  · 技术社区  · 15 年前

    你能推荐一个好的文件比较工具吗?它能很好地处理C。我尝试过winmerge、beyondcompare和kdiff,但它们都不够好,例如,如果我有同名的函数,但放在文件的不同区域,它们会显示为差异。

    5 回复  |  直到 10 年前
        1
  •  1
  •   Community CDub    8 年前

    [ 更新(2015) :由于编写这个答案,现在有更多的现代工具可以进行各种语言中代码的结构和语义合并和区分。见 JotaBe's answer 例如]

    原始答案(2010) : 不幸的是,这就是差异的本质。它总是一行一行的比较,而不是一种语言感知的比较。据我所知,你所要求的一切都没有实现(但我总是有可能是错的)。

    你可以使用像这样的工具 regionerate 在进行比较之前标准化类布局。这将对所有方法进行排序,因此在文件的不同位置使用相同名称的方法不会有问题。

        2
  •  2
  •   JotaBe    10 年前

    目前(2015年4月),至少有3个商业比较工具考虑了C代码文件的结构,以便在代码文件之间进行高级差异和合并:

    这三个工具仅支持付费版本(或试用期)上的这种高级比较。阿法克没有免费的工具可以做到这一点。

        3
  •  1
  •   Community CDub    8 年前

    我所知道的唯一能做到这一点的工具(我不确定它能做到这一点)是 Git .

    据我所知,它可以跟踪函数,即使它们被移动到不同的文件中,所以在这个场景中使用它不会有什么不同。

    this answer 更多细节。

        4
  •  1
  •   JackD    15 年前

    我正在使用 Devart CodeCompare 为了这个任务。原生vs编辑器允许我很好地处理C和VB。他们称这一特性为“结构比较”。它对你很有用。

        5
  •  0
  •   Tim Coker    15 年前

    我不认为你会找到一个文本比较工具来完成这个任务。您最好重新组织函数,使它们位于相同的位置。我见过设计器生成的代码这样做(即,每次重新生成文件时都移动函数)。这很烦人,但我不认为你会绕过它。BeyondCompare确实是目前最好的比较工具之一。