如何阅读源码(C)

如何阅读源码(C)

ID:40260864

大小:86.50 KB

页数:14页

时间:2019-07-29

如何阅读源码(C)_第1页
如何阅读源码(C)_第2页
如何阅读源码(C)_第3页
如何阅读源码(C)_第4页
如何阅读源码(C)_第5页
资源描述:

《如何阅读源码(C)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第一章:导论++++++++++++1.要养成一个习惯,经常花时间阅读别人编写的高品质代码.2.要有选择地阅读代码,同时,还要有自己的目标.您是想学习新的模式

2、编码风格

3、还是满足某些需求的方法.3.要注意并重视代码中特殊的非功能性需求,这些需求也许会导致特殊的实现风格.4.在现有的代码上工作时,请与作者和维护人员进行必要的协调,以避免重复劳动或产生厌恶情绪.5.请将从开放源码软件中得到的益处看作是一项贷款,尽可能地寻找各种方式来回报开放源码社团.6.多数情况下,如果您想要了解"别人会如何完成这个功能呢?",除了阅读代码以外,没有更好的方法

4、.7.在寻找bug时,请从问题的表现形式到问题的根源来分析代码.不要沿着不相关的路径(误入歧途).8.我们要充分利用调试器

5、编译器给出的警告或输出的符号代码

6、系统调用跟踪器

7、数据库结构化查询语言的日志机制

8、包转储工具和Windows的消息侦查程序,定出的bug的位置.9.对于那些大型且组织良好的系统,您只需要最低限度地了解它的全部功能,就能够对它做出修改.10.当向系统中增加新功能时,首先的任务就是找到实现类似特性的代码,将它作为待实现功能的模板.11.从特性的功能描述到代码的实现,可以按照字符串消息,或使用关键词来搜索代码.12.在移植

9、代码或修改接口时,您可以通过编译器直接定位出问题涉及的范围,从而减少代码阅读的工作量.13.进行重构时,您从一个能够正常工作的系统开始做起,希望确保结束时系统能够正常工作.一套恰当的测试用例(testcase)可以帮助您满足此项约束.14.阅读代码寻找重构机会时,先从系统的构架开始,然后逐步细化,能够获得最大的效益.15.代码的可重用性是一个很诱人,但难以理解与分离,可以试着寻找粒度更大一些的包,甚至其他代码.16.在复查软件系统时,要注意,系统是由很多部分组成的,不仅仅只是执行语句.还要注意分析以下内容:文件和目录结构

10、生成和配置过程

11、

12、用户界面和系统的文档.18.可以将软件复查作为一个学习

13、讲授

14、援之以手和接受帮助的机会.++++++++++++++++++++第二章:基本编程元素++++++++++++++++++++19.第一次分析一个程序时,main是一个好的起始点.20.层叠if-elseif-...-else序列可以看作是由互斥选择项组成的选择结构.21.有时,要想了解程序在某一方面的功能,运行它可能比阅读源代码更为恰当.22.在分析重要的程序时,最好首先识别出重要的组成部分.23.了解局部的命名约定,利用它们来猜测变量和函数的功能用途.24.当基于猜测修改代

15、码时,您应该设计能够验证最初假设的过程.这个过程可能包括用编译器进行检查

16、引入断言

17、或者执行适当的测试用例.25.理解了代码的某一部分,可能帮助你理解余下的代码.26.解决困难的代码要从容易的部分入手.27.要养成遇到库元素就去阅读相关文档的习惯;这将会增强您阅读和编写代码的能力.28.代码阅读有许多可选择的策略:自底向上和自顶向下的分析

18、应用试探法和检查注释和外部文档,应该依据问题的需要尝试所有这些方法.29.for(i=0;i

19、达式可以看作是区间成员测试.31.我们经常可以将表达式应用在样本数据上,借以了解它的含义.32.使用DeMorgan法则简化复杂的逻辑表达式.33.在阅读逻辑乘表达式时,问题可以认为正在分析的表达式以左的表达式均为true;在阅读逻辑和表达式时,类似地,可以认为正在分析的表达式以左的表达式均为false.34.重新组织您控制的代码,使之更为易读.35.将使用条件运行符?:的表达式理解为if代码.36.不需要为了效率,牺牲代码的易读性.37.高效的算法和特殊的优化确实有可能使得代码更为复杂,从而更难理解,但这并不意味着使代码更为紧凑和不易读

20、会提高它的效率.38.创造性的代码布局可以用来提高代码的易读性.39.我们可以使用空格

21、临时变量和括号提高表达式的易读性.40.在阅读您所控制的代码时,要养成添加注释的习惯.41.我们可以用好的缩进以及对变量名称的明智选择,提高编写欠佳的程序的易读性.42.用diff程序分析程序的修订历史时,如果这段历史跨越了整体重新缩排,常常可以通过指定-w选项,让diff忽略空白差异,避免由于更改了缩进层次而引入的噪音.43.do循环的循环体至少执行一次.44.执行算术运算时,当b=2n-1时,可以将a&b理解为a%(b+1).45.将a<

22、a*k,k=2n.46.将a>>n理解为a/k,k=2n.47.每次只分析一个控制结构,将它的内容看作是一个黑盒.48.将每个控制结构的控制表达式看作是它所包含代码的断言.49.return,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。