第一章 概述 1
1.1 引言 1
1.2 C编译 1
1.3 C语言 2
1.4 内容提要 4
1.5 其它工具 7
第二章 C编译系统 9
2.1 引言 9
2.2 编译和连接 9
2.3 库和前导文件 34
第三章 C语言 51
3.1 引言 51
3.2 源码文件和单词切分 53
3.3 预处理 56
3.4 声明和定义 63
3.5 转换和表达式 71
3.6 语句 82
3.7 可移植性的考虑 86
第四章 C编译程序的诊断 89
4.1 引言 89
4.2 消息 90
4.3 操作符名 186
4.4 其它出错消息 187
第五章 Iint 189
5.1 引言 189
5.2 lint做什么 190
5.3 使用 194
5.4 针对lint的消息 199
第六章 sdb 229
6.1 引言 229
6.2 命令行语法 230
6.3 交互式命令 231
6.4 例子 241
第七章 Iprof 245
7.1 C梗概工具的概述 245
7.2 编译你的程序 246
7.3 运行梗概处理过的程序 247
7.4 调用Iprof 250
7.5 对档案或共享目标库代码进行梗概处理 256
7.6 注意事项 257
7.7 改善程序性能 258
7.8 改善测试覆盖率 264
第八章 cscope 267
8.1 引言 267
8.2 怎样使用cscope 267
8.3 注意事项 285
第九章 make 287
9.1 引言 287
9.2 基本特性 287
9.3 描述文件和替换 291
9.4 命令用法 300
9.5 建议和告诫 302
9.6 内部规则 303
第十章 SCCS 309
10.1 引言 309
10.2 基本用法 309
10.3 delta编号 313
10.4 SCCS命令约定 315
10.5 SCCS命令 316
10.6 SCCS文件 334
第十一章 Iex 337
11.1 引言 337
11.2 生成一个词法分析器程序 337
11.3 编写Iex源 339
11.4 Iex与yacc一同使用 352
11.5 其它 354
11.6 源格式小结 355
第十二章 YACC 357
12.1 引言 357
12.2 基本的规格说明 359
12.3 语法分析程序的操作 365
12.4 歧义性和冲突 368
12.5 优先级 373
12.6 出错处理 376
12.7 yacc环境 379
12.8 准备规格说明的一些建议 380
12.9 一些进一步的论题 382
12.10 两个例子 387
第十三章 目标文件 397
13.1 引言 397
13.2 程序连接 399
13.3 程序执行 427
第十四章 浮点运算 451
14.1 引言 451
14.2 IEEE算术 451
14.3 二进制和十进制值之间的转换 459
14.4 单精度浮点运算 461
14.5 扩充的双精度 463
14.6 IEEE的要求 464
第十五章 m4宏处理程序 467
15.1 概述 467
15.2 m4宏功能 469
附录A 增强的asm工具 479
A.1 引言 479
A.2 例子 479
A.3 术语的定义 481
A.4 详细的描述 481
A.5 写asm宏功能 483
附录B 映射文件任选项 485
B.1 引言 485
B.2 使用映射文件任选项 485
B.3 映射文件的结构和语法 486
B.4 映射的例子 490
B.5 映射文件任选项的默认值 491
B.6 内部映射结构 493
B.7 出错信息 495
词汇表 497