understand中几个重要的工具

understand作为一款源码阅读工具,有几个很棒的功能,对于函数的层级调用关系展示的很清晰。 
下面来进行详细的说明:

层级关系图:

如下代码示例:、

void root(void)
{
    //平台初始化
    Init_Flats();
    //创建系统任务
    ShowInitInfo("创建系统任务2...");
    CreateSysTask2();
    //加载主维护口
    ShowInitInfo( "加载维护端口..." );
    InitSysPort();
    //初始化负控系统
    ShowInitInfo("创建/扫描系统文件...");
    if(!bInSafe)
        InitFKSystem();
    if(bInSafe)
    {
        Trace("安全模式");
    }
    ExInitShowInitInfo();
    //退出ROOT任务
}

 butterfly:

显示调用和被调用关系,如果存在。选定的实体用红色标识,如图: 

Calls:

显示从此函数发出的整个呼叫链。 实体之间的每条线被读作“x调用y”。

这里写图片描述

可知,root函数中调用的如图所示的函数。

Called By:

显示谁直接调用了该函数。 

这里写图片描述

 Calls Relationship / Calledby Relationship:

显示两个函数之间的调用以及被调用关系。 
Calls Relationship: 
root 调用ShowInitInfo 

这里写图片描述

Calledby Relationship: 
ShowInitInfo 调用root: 

这里写图片描述

Control Flow

函数实体的流程图:不完美,但很清晰。

这里写图片描述

 

Declaration:

显示函数实体的结构,包括:函数名,函数返回值、函数实体被调用函数、函数实体调用了的函数;

这里写图片描述

 Declaration File

对选中函数的定义文件的描述,包括该文件包含的头文件、变量、文件包含的函数等

这里写图片描述

 

gdwLastSaveTime为文件定义的变量,

UML Sequence Diagram:

生成UML的时序图,具体的请另行查看,不做过多解释。

Cluster graphs:聚类图

包括:Cluster Call, Cluster Callby, Cluster Call Butterfly, Cluster Call Internal, and Cluster Control Flow等,与上述的其他图类似,但更全面,有大局观。这里不一一列举。

原文:https://blog.youkuaiyun.com/guozhongwei1/article/details/80282734 
 

### 创建和理解生成流程图的方法及工具 #### 使用自动化工具自动生成流程图 对于C语言或其他编程语言,存在专门用于生成流程图的工具。这类工具能够解析源代码文件,并依据其的控制流语句构建对应的图形表示[^1]。 例如,在处理较为简单的项目时可以直接利用集成环境自带的功能或是第三方插件完成这一操作;而对于大型工程,则可能需要更专业的解决方案如文提及的Code Visual 代码编辑器(code visual to flowchart v6.0),该软件具备强大的可视化能力,可以帮助程序员快速定位问题所在并改进现有架构设计[^4]。 #### 手动绘制与半自动辅助相结合的方式 除了完全依赖机器外,也可以采取人工参与的方式来制作更加精准细致的图表。此时推荐采用像Draw.io这样的在线平台来进行创作——它拥有丰富的形状库资源可供挑选使用,而且界面友好易于上手掌握[^2]。 另外值得一提的是还有Kimi这样专注于特定领域内的智能助手服务,它们可以根据用户输入的文字描述自动生成初步版本供后续修改完善之用。更重要的一点在于此类系统通常会遵循一定的标准规范(比如Mermaid语法),从而确保最终成果既美观又实用[^3]。 ```mermaid graph TD; A[开始]; B{判断条件}; C[执行分支A]; D[执行分支B]; E[结束]; A --> B; B -- "满足" --> C; B -- "不满足" --> D; C --> E; D --> E; ``` 上述例子展示了如何运用Markdown的`mermaid`扩展来编写一段简易版的选择结构伪代码转成图像的过程。这种方式非常适合用来记录笔记或者是作为教学材料的一部分向他人讲解概念要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值