C:绘制一个大型图书馆[关闭]

问题描述 投票:7回答:3

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

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

我知道有许多用于绘制OO语言的工具,但我想要一个C语言。任何帮助都将受到赞赏。

建议:


doxygen

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

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


cppdepend

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

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


ctag

  • (nedit,vim,emacs)VIM TUTORIAL 班级名称 宏定义 枚举名称 统计员 功能定义 函数原型/声明 class,interface,struct和union数据成员 结构名称 类型定义 工会名称 变量(定义和外部声明)

csope

  • (cmd line,vim)VIM TUTORIAL 允许搜索代码: 所有对符号的引用 全球定义 函数调用的函数 调用函数的函数 文字字符串 正则表达式 一份文件 文件包括文件
c diagram case diagramming
3个回答
7
投票

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


3
投票

CppDepend,如果你在Windows上工作,使用查询语言扩展Doxygen并能够在依赖图中移动。


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.