C:绘制大型图书馆的示意图

7
有没有工具可以帮助绘制大型C库的图表?我正在进行一个项目,将现有的C库移植到C ++。该C库基本上没有文档,也没有图表。我想使用CASE工具来帮助我了解各个文件之间的交互方式。大多数文件中都有外部变量。
如果可能的话,我更喜欢使用可视化图表来更好地理解代码流程。我不熟悉过程语言的图表工具(或者是否存在这样的工具)。我记得在大学里,我们使用层次结构和数据流程图来处理过程语言。
我知道有很多用于绘制OO语言的工具,但我想要一个用于C语言的工具。任何帮助都将不胜感激。 建议:

doxygen

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

cppdepend

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

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


ctag

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

csope

  • (命令行,vim) VIM教程
    • 允许搜索代码中的:
    • 所有符号的引用
    • 全局定义
    • 被函数调用的函数
    • 调用函数的函数
    • 文本字符串
    • 正则表达式模式
    • 一个文件
    • 包含一个文件的文件
3个回答

7

Doxygen 可以生成各种类型的交互图 - 文件、函数调用等。当设置 EXTRACT_ALL 配置变量时,它甚至可以为没有文档注释的代码生成图表和交叉引用文档。


3
如果你在Windows上工作,CppDepend可以扩展Doxygen的查询语言和依赖图移动功能。

2

如Nick Meyer所提到的,Doxygen可能是一个很好的选择。你也可以尝试使用经典的交叉引用工具ctags和cscope,这些工具可以作为独立工具或与文本编辑器集成使用。


cscope看起来很不错,但我正在Windows环境下工作。它似乎是MSVS NCB智能感知文件(http://msdn.microsoft.com/en-us/library/ms379615(VS.80).aspx)的更好版本。然而,cscope使您能够查询数据库。 - user295190

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接