首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

怎么学习阅读大型项目的代码(2)

怎么学习阅读大型项目的代码(2)

第二章: 基本编程元素

++++++++++++++++++++

    第一次分析一个程序时, main是一个好的起始点.

    层叠if-else if-else序列可以看作是由互斥选择项组成的选择结构.

    有时, 要想了解程序在某一方面的功能, 运行它可能比阅读 源代码 更为恰当.

    在分析重要的程序时, 最好首先识别出重要的组成部分.

    了解局部的命名约定, 利用它们来猜测变量和函数的功能用途.

    当基于猜测修改代码时, 您应该设计能够验证最初假设的过程. 这个过程可能包括用编译器进行检查|引入断言|或者执行适当的测试用例.

    理解了代码的某一部分, 可能帮助你理解余下的代码.

    解决困难的代码要从容易的部分入手.

    要养成遇到库元素就去阅读相关文档的习惯; 这将会增强您阅读和编写代码的能力.

    代码阅读有许多可选择的策略: 自底向上和自顶向下的分析|应用试探法和检查注释和外部文档, 应该依据问题的需要尝试所有这些方法.

    for (i=0; i<n; i++)形式的循环执行n次; 其他任何形式都要小心.

    涉及两项不等测试(其中一项包括相等条件)的比较表达式可以看作是区间成员测试.

    我们经常可以将表达式应用在样本数据上, 借以了解它的含义.

    使用De Morgan法则简化复杂的逻辑表达式.

    在阅读逻辑乘表达式时, 问题可以认为正在分析的表达式以左的表达式均为true; 在阅读逻辑和表达式时, 类似地, 可以认为正在分析的表达式以左的表达式均为false.

    重新组织您控制的代码, 使之更为易读.

    将使用条件运行符? :的表达式理解为if代码.

    不需要为了效率, 牺牲代码的易读性.

    高效的算法和特殊的优化确实有可能使得代码更为复杂, 从而更难理解, 但这并不意味着使代码更为紧凑和不易读会提高它的效率.

    创造性的代码布局可以用来提高代码的易读性.

    我们可以使用空格|临时变量和括号提高表达式的易读性.

    在阅读您所控制的代码时, 要养成添加注释的习惯.

    我们可以用好的缩进以及对变量名称的明智选择, 提高编写欠佳的程序的易读性.

    用diff程序分析程序的修订历史时, 如果这段历史跨越了整体重新缩排, 常常可以通过指定-w选项, 让diff忽略空白差异, 避免由于更改了缩进层次而引入的噪音.

    do循环的循环体至少执行一次.

    执行算术运算时, 当b=2n-1时, 可以将a&b理解为a%(b+1).

    *将a<<n理解为ak, k=2n. **

    **将a>>n理解为a/k, k=2n. **

    每次只分析一个控制结构, 将它的内容看作是一个黑盒.

    将每个控制结构的控制表达式看作是它所包含代码的断言.

    return, goto, break和continue语句, 还有异常, 都会影响结构化的执行流程. 由于这些语句一般都会终止或重新开始正在进行的循环, 因此要单独推理它们的行为.

    用复杂循环的变式和不变式, 对循环进行推理.

    使用保持含义不变的变换重新安排代码, 简化代码的推理工作.
返回列表