分析程序中重要的两条主线

来源:互联网 发布:mini metro mac 编辑:程序博客网 时间:2024/06/06 02:32

平时看源码的时候免不了要深入分析代码,我一般用DIA或者VISIO来画图,增强对代码的认识和理解。

咱这工作算上实习也快三年了,谈谈对这个分析代码的认识。

整体上的代码首先要知道入口在哪里,当然了一般绝大多数就是去找main函数。

然后经过看了好些的代码感觉有两条线非常的重要:

根据先后顺序,一是:函数调用流程二是:数据流

比如像u-boot,ffmpeg,glib,gtk,cairo之类的代码,当进行分析的时候,首先我找的是函数的调用流程。感觉理解了这个调用流程,就清晰了代码的逻辑结构关系。毕竟咱不是C++出身的,习惯了C+ASM的顺序思想。如果代码的执行流程在脑子里不清楚,那绝对是一团浆糊。

在此之后,就是数据流了。这个数据因为咱接触OOP的程序少,所以大部分都是结构体,基本木有类。即,是对重要结构体的流程的跟踪,里面成员赋值和变化的情况有所了解。

一般程序都有主线数据结构,就是说这几个变量在代码中扮演了重要角色。因此,搞清楚了这几个变量的流动过程,出生,成长,消亡。有助于理解代码的结构。

都说程序就是数据结构+算法。

函数调用流程可以搞清楚程序设计的思路,当然了还要加上数据的处理流程,数据流不仅完善了设计思路,而且算法是直接处理数据的,因此,数据流也沟通了数据结构和算法。

复杂的数据结构什么链表树图之类的,它们所转移的也就是数据结构。数据乘坐在数据结构中,在算法这个道路上运动,形成数据流。而数据流的代码表现形式则反应为函数的调用过程~。

╮(╯▽╰)╭突然觉得深刻了,O(∩_∩)O~

突然领悟到的,记录一下~。

原创粉丝点击