7

是否有任何工具可以帮助绘制大型 C 库的图表?我正在开发一个将现有 C 库移植到 C++ 的项目。C 库大部分没有文档,没有图表。我想使用 CASE 工具来帮助我了解各种文件如何交互。大多数文件中都有外部变量。

如果可能的话,我更喜欢视觉图来更好地理解代码的流程。我不熟悉用于程序语言的图表工具(或者即使它存在)。我记得在大学里,我们使用层次结构和数据流程图来表示程序语言。

我知道存在许多用于绘制 OO 语言图表的工具,但我想要一个用于 C 语言的工具。任何帮助将不胜感激。

建议


多氧

它可以通过三种方式帮助您:

它可以从一组记录的源文件生成在线文档浏览器(HTML)和/或离线参考手册(in )。还支持在 RTF (MS-Word)、PostScript、超链接 PDF、压缩 HTML 和 Unix 手册页中生成输出。文档直接从源代码中提取,这使得文档与源代码保持一致变得更加容易。您可以配置 doxygen 以从未记录的源文件中提取代码结构。这对于在大型源代码分发中快速找到您的方式非常有用。您还可以通过包含依赖图、继承图和协作图来可视化各种元素之间的关系,这些都是自动生成的。你甚至可以“滥用”


cpp依赖

  • 开源/学术和商业许可证(MSVS 插件)

提高您的代码库质量。CppDepend 是一个工具,可以简化复杂的 C\C++(Native、Mixed 和 COM)代码库的管理。架构师和开发人员可以通过比较不同版本的代码来分析代码结构、指定设计规则、进行有效的代码审查和掌握演变。这些案例研究展示了 CppDepend 的实用性,可以深入了解您的架构、设计和实现。重构和改进您的设计和架构。CppDepend 提供有用的图表来分析您的设计和架构。CQL 语言使您可以灵活地创建自定义查询并深入了解您的代码库。这是使用 CppDepend 帮助重构的示例。协助您的迁移。了解现有的迁移。


ctag

  • (nedit, vim, emacs) VIM 教程
    • 类名
    • 宏定义
    • 枚举名称
    • 枚举器
    • 函数定义
    • 函数原型/声明
    • 类、接口、结构和联合数据成员
    • 结构名称
    • 类型定义
    • 工会名称
    • 变量(定义和外部声明)

csope

  • (cmd line, vim) VIM 教程
    • 允许搜索代码:
    • 所有对符号的引用
    • 全局定义
    • 函数调用的函数
    • 函数调用函数
    • 文本字符串
    • 正则表达式模式
    • 一份文件
    • 文件包括文件
4

3 回答 3

7

Doxygen可以生成各种类型的交互图 - 文件、函数调用等。通过设置 EXTRACT_ALL 配置变量,即使对于没有文档注释的代码,它也会生成图和交叉引用的文档。

于 2010-10-17T20:13:02.767 回答
3

如果您在 Windows 上工作, CppDepend会使用查询语言和在依赖关系图中移动的能力扩展 Doxygen。

于 2010-10-17T21:13:33.457 回答
2

Nick Meyer 提到的 Doxygen 可能是一个不错的选择。您还可以尝试经典的交叉引用工具 ctags 和 cscope,您可以将它们用作独立工具或与文本编辑器集成。

于 2010-10-17T20:33:58.170 回答