C、C++ 或 Fortran 的代码抛光器/重新格式化器 [关闭]

Posted

技术标签:

【中文标题】C、C++ 或 Fortran 的代码抛光器/重新格式化器 [关闭]【英文标题】:Code polisher / reformater for C, C++ or Fortran [closed] 【发布时间】:2011-03-25 17:05:02 【问题描述】:

假设您有一堆由不同作者用 C、C++ 或 Fortran 编写的文件,在格式、如何注释等方面有不同的意见。我想很多人都知道这样的情况。

是否有任何免费工具可以达到以下目的:

统一的代码格式(缩进等) 创建标准评论正文 重命名变量

?

【问题讨论】:

这个***.com/questions/841075/…的可能副本? 【参考方案1】:

您可以查看indent (unix) 命令。它并不能满足您的要求,但我认为这是一个好的开始

【讨论】:

+1。可怕的工具。任何东西都可以配置。从命令行运行,可以批量缩进。 手册页说它只适用于 C。在 fortran 文件上尝试显示了可怕的结果。确保在释放缩进之前将源复制到临时文件,因为默认情况下它会覆盖原始文件。 @Nathan:你不应该复制源文件。使用 VCS。【参考方案2】:

看看 AStyle。它是一个基于命令行的格式化程序/美化器。尽管它适用于 C、C++、C# 和 Java,但它不处理 Fortran

【讨论】:

这看起来非常棒,但是它似乎主要用于 C 代码,我想知道当 C++ 细节被抛出(模板,lambda)时它是如何执行的,我一定会试一试! 【参考方案3】:

Eclipse 的 CDT 插件具有出色的 C/C++ 格式化和重构工具。

可以自定义格式化程序以满足几乎所有需求。

重构工具也非常强大,使用它们重命名变量、类等是一项简单而安全的任务。 (他们使用索引器/解析器来识别变量的范围,所以它不是简单的搜索和替换。cmets 中的匹配模式也可以自动更改。

但是,据我所知,无法进行批处理。

编辑:另一个明显的缺点是,您必须创建一个项目才能使索引器(以及重构工具)工作。因此,至少您必须将所有包含路径和重要的编译器定义添加到项目设置中。 我从未尝试过,但是如果没有可用的真正编译器,索引器应该可以正常工作,但可能需要使项目使用“内部构建器”,否则您无法设置包含路径。 (我不确定这一点,因为我在我的项目中使用带有 gcc 的内部构建器 - 这工作正常。)

【讨论】:

【参考方案4】:

我使用Uncrustify 和UniversalIndentGui 来格式化C++ 代码。它工作得很好。 Uncrustify 提供了许多自定义选项,UniversalIndentGui“提供实时预览,用于设置几乎所有压头的参数。您更改参数的值并直接查看重新格式化的代码的外观。”

【讨论】:

【参考方案5】:

对于 Fortran,有 plusFORT,它可以做的远远超出您的要求,例如重组代码和从 FORTRAN 77 转换为 Fortran 90。请参阅http://www.polyhedron.com/pf-plusfort0html 和 http://www.polyhedron.com/pflinux0html

【讨论】:

以上是关于C、C++ 或 Fortran 的代码抛光器/重新格式化器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

通过在 C++ 接口周围创建 C 包装器,在 FORTRAN 中调用 C++ dll 文件 [关闭]

如何用 c 或 c++ 读取 FORTRAN 二进制文件?

使用 Fortran 中的内存数据调用 C 代码

如何针对 C、C++ 或 Fortran 中的另一个多维数组快速对多维数组进行十亿点排序?

前缀(抛光)表示法 - 评估 c++

C++ 从 dll 调用 FORTRAN 子例程