目 录 1
第1章导论 1
1.1为什么以及如何阅读代码 2
1.2如何阅读本书 7
进阶读物 12
第2章基本编程元素 13
2.1一个完整的程序 13
2.2函数和全局变量 17
2.3 while循环、条件和块 20
2.4 switch语句 22
2.5 for循环 23
2.6 break和continue语句 26
2.7字符和布尔型表达式 27
2.8 goto语句 30
2.9小范围重构 32
2.10 do循环和整型表达式 36
2.11再论控制结构 38
进阶读物 43
第3章高级C数据类型 44
3.1指针 44
3.2结构 54
3.3共用体 58
3.4动态内存分配 62
3.5 typedef声明 66
进阶读物 68
4.1 向量 69
第4章C数据结构 69
4.2矩阵和表 73
4.3栈 76
4.4队列 78
4.5映射 80
4.6集合 84
4.7链表 86
4.8树 92
4.9图 96
进阶读物 104
第5章高级控制流程 105
5.1递归 105
5.2异常 110
5.3并行处理 113
5.4信号 121
5.5非局部跳转 125
5.6宏替换 127
进阶读物 131
第6章应对大型项目 132
6.1设计与实现技术 132
6.2项目的组织 133
6.3编译过程和制作文件 140
6.4配置 146
6.5修订控制 150
6.6项目的专有工具 157
6.7 测试 161
进阶读物 167
第7章编码规范和约定 168
7.1文件的命名及组织 168
7.2缩进 170
7.5编排 171
7.4命名约定 174
7.5编程实践 177
7.6过程规范 179
进阶读物 179
第8章文档 180
8.1文档的类型 180
8.2阅读文档 181
8.3文档存在的问题 191
8.4其他文档来源 192
8.5常见的开放源码文档格式 195
进阶读物 199
第9章系统构架 200
9.1系统的结构 200
9.2控制模型 213
9.3元素封装 219
9.4构架重用 246
进阶读物 253
第10章代码阅读工具 255
10.1正则表达式 255
10.2用编辑器浏览代码 258
10.3用grep搜索代码 260
10.4找出文件的差异 266
10.5开发自己的工具 268
10.6用编译器来协助代码阅读 270
10.7代码浏览器和美化器 274
10.8运行期间的工具 278
10.9非软件工具 281
可用工具和进阶读物 282
第11章一个完整的例子 284
11.1 概况 284
11.2 攻坚计划 285
11.3 代码重用 286
11.4 测试与调试 291
11.5文档 297
11.6观察报告 298
附录A代码概况 299
附录B阅读代码的格言 302
第1章:导论 302
第2章:基本编程元素 303
第3章:高级C数据类型 304
第4章:C数据结构 305
第5章:高级控制流程 306
第6章:应对大型项目 306
第7章:编码规范和约定 307
第8章:文档 308
第9章:系统构架 309
第10章:代码阅读工具 311
第11章:一个完整的例子 312
参考文献 314