C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)
问:
研究一个开源系统源码的时候,总是不知道该从哪里研究。
我现在看源码从index文件开始看起,遇到包含的文件,就去看包含的文件,
包含的文件中又引用了其它的文件,总是觉得看来看去,很没有逻辑性。
各位有什么好办法,快速研究一个系统的源码?
答:
另外:
回答里推荐了一本书——代码阅读方法与实践,里面提供了如下方法:
但要注意从小型的程序开始阅读;不要立即陷入对大型系统的研究中。编译研究的程序并运行它们。这样您可以得到即时的回馈,了解代码预想的工作方式,同时还可以获得成就感。下一步就是主动地修改代码来检验您对代码的理解是否正确。再次强调,要从小的改动做起,逐渐地增大他们的范围。
—— 引自 第1章 导论
代码阅读包含有很多可供选择的策略:自底向上和自顶向下的分析、试探法、检查注释和外部文档,应当根据问题的需要来尝试所有这些方法。
—— 引自 基本编程元素
参考文章:C+±如何快速解构一个系统的源码
C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)相关推荐
- 鸿蒙系统的结构图,一图看懂鸿蒙系统中的JS开发框架!
原标题:一图看懂鸿蒙系统中的JS开发框架! " 前端这两年玩起来了三国杀,Vue,React,Angular 三足鼎立,其中 Vue 派系在国内打的 Angular 找不到北了. 因此,小程 ...
- 一个简单案例,带你看懂GC日志!
环境准备 这样一个案例程序: public class Main {public static void main(String[] args) {byte[] array1 = new byte[4 ...
- (Matlab源码)Matlab实现算术编码(Arithmetic coding)超级详解(每一段代码都可以看懂)
1.代码功能 输入:一个字符串 输出: codeword(码值) codeword所占的位数 2.代码框图 3.代码超详解 统计字符串中的字符种类,调用函数,放入数组b中. b=unique(str1 ...
- 一个简单案例,5 分钟看懂 Java Lamdba 表达式
JDK8引入了一个新玩意,叫做lamdba(那么大)的表达式,说得神乎其神,说真的,这玩意吧,并不难,但是要讲清楚吧,也不是太容易的事情. 从匿名内部类开始说起 老实交代,直接来讲lamdba表达式还 ...
- surface 安卓双系统_一张图看懂微软Surface发布会:史上最大惊喜
10月2日晚,微软在纽约举行新品发布会,一口气带来了Surface Neo双屏电脑.Surface Duo折叠屏手机.Surface Pro X.Surface Laptop 3. Surface P ...
- 详解 matplotlib.pyplot ,Python 初学者真能看懂
Matplotlib 是一个 Python 中的 2D 绘图库, pyplot 模块是一个方便使用 Matplotlib 的接口. 下面是 pyplot 模块中的五个重要的知识点: [创建图形]: p ...
- 读懂matlab代码,一个Matlab的寻峰程序没有看懂,不知大家能否帮助?
这个程序用来寻找输入的两组数据(x,y)的峰,并计算其半高全宽和其他参数. 开始比较容易懂,后来到了程序主体部分,看不明白,看了好长时间,可能因为知识结构不全面,看不懂了.希望再此能得到大家的帮助,多 ...
- ts从入门到进阶—3-4var/let/const声明,解构,展开
var/let/const声明,解构,展开快速入门 let 声明 const 声明(被赋值后不能再改变) let hello = "Hello!"; 1.块作用域:a.块作用域变量 ...
- 每天十分钟学好ES6--关于解构赋值的彩虹屁
解构赋值是es6中很简单实用的小语法,今天一定要给它吹一下彩虹屁. 说他简单,是因为在es6规范中,排位在第二,也就是let和const之后就是他了,语法篇章也不多,还没说多少就开始说应用,应用的部分 ...
最新文章
- java web.xml_Java Web之XML基础
- JAVA面试题(20)
- 基于android的简单网页_成都APP开发:APP原生和网页开发有什么区别?
- c linux 判断ip合法_shell 检测ip的合法性与检测网络掩码的合法性
- STM32的CAN过滤器详解
- reids和memcache的区别和一些常见的问题
- 现在最火的深度学习框架是什么?
- 金士顿100 G3U盘写保护无法格式化的解决方法记录
- 5.8G雷达感应模块,微波雷达传感器技术,人体存在感应雷达
- 苦才是人生的经典美言
- xynu 2917: 整数凑和问题(搜索)
- 解决IOS微信浏览器底部会出现向前向后返回按钮,返回不刷新的问题
- python中怎么编写程序_python写完程序怎么运行
- python列表中的元素可以是不同类型_Python列表中所有元素必须为相同类型的数据。...
- 邹欣对话图灵奖得主Jeffrey Ullman:数据库不会进入周期性的坏循环 |《新程序员》
- 你可能不了解的《唐诗三百首》
- 计算机画画作品 人物 游泳,幼儿人物画图片游泳的人
- MAX485串口通信
- python语言int什么意思_int在python中什么意思
- CLion配置visual studio(msvc)和JOM多核编译