目录 1
第一章 Turbo C的安装 1
1.1 安装Turbo C的硬件环境 3
1.2 Turbo C 2.0磁盘上的内容 3
1.3 三种安装方法 6
1.4 文本阅读器README.COM 7
第二章 80x86指令和六种存储模式 12
2.1 寄存器 12
2.2 8086地址计算 14
2.3 8086/80386指令集简介 15
2.4 嵌入汇编 26
2.5 Turbo C的六种存储模式 29
2.6 汇编程序的伪指令(摘要) 34
第三章 关键字和语句 41
3.1 分类 41
3.2 详细说明 42
3.3 附注 67
第四章 变量的存储分类与应用 68
4.1 分类 68
4.2 初始化 69
4.3 详细说明 70
4.4 局部变量和全局变量的关系 76
4.6 嵌入汇编和寄存器变量 77
4.5 寄存器变量 77
第五章 数据类型的转换 78
5.1 int类型和char类型间的转换 78
5.2 int类型和enum类型间的转换 79
5.3 指针之间的转换 79
5.4 符号扩充、转义符与算术运算转换 81
5.5 类型的强制转换 90
5.6 字符串与数值之间的转换 91
第六章 运算符 92
6.2 下标运算符[] 93
6.1 结合运算符() 93
6.3 分量运算符.和-> 94
6.4 逻辑运算符!、&&和|| 96
6.5 位运算符~、<<、>>、&、^和| 99
6.6 负值运算符- 105
6.7 递增、递减运算符++和-- 106
6.8 指针运算符&和* 107
6.9 强制类型转换运算符(类型名) 108
6.10 求字节数运算符sizeof 110
6.11 算术运算符+、-、*、/和% 110
6.13 赋值运算符=与op= 111
6.12 关系运算符>、<、==、>=、<=和! 111
6.14 条件运算符?: 112
6.15 逗号运算符, 114
6.16 综合举例 115
第七章 数组与字符串 116
7.1 数组 116
7.1.1 一维数组 116
7.1.2 二维数组和多维数组 120
7.2 字符分类 122
7.2.2 外部字符数组 ctype的含义 123
7.2.3 字符分类宏 123
7.2.1 分类标志常量 123
7.2.4 清字符最高位与字符大小写转换 124
7.3 字符串操作 124
7.3.1 字符串的定义 124
7.3.2 串操作函数 126
7.4 查找字符串实用程序GREP.COM 150
7.4.1 作用 150
7.4.2 语法和帮助 150
7.4.3 语法说明 151
7.4.4 可能出现的错误信息 161
8.2 变量的指针和指向变量的指针变量 163
第八章 指针 163
8.1 指针的重要性 163
8.3 指针的定义 165
8.4 指针运算符*和&的相互关系 167
8.5 指针值传递的单向性 169
8.6 指向数组的指针 171
8.7 指针的运算 172
8.8 指针加减时的比例因子 176
8.9 指针动态分配和给指针赋初值 176
8.10 指针比较大小 183
8.11 指针与字符串 184
8.12 和存储模式相关的指针修饰符 186
8.13 与远地址相关的指针函数 192
8.14 指向结构的指针和符号—> 194
8.15 用指向结构的指针作函数的参数 196
8.16 结构中有指向自身的指针 197
8.17 指向函数的指针(函数指针) 200
8.18 返回指针值的函数 201
第九章 结构与联合 202
9.1 结构 202
9.4 结构数组 206
9.2 结构指针 206
9.3 访问结构成员 206
9.5 用sizeof求结构的大小 207
9.6 联合 208
9.7 读取任意*.DBF文件中的数据 211
第十章 位运算与位域 216
10.1 计算机中的位 216
10.2 数循环移位 217
10.3 位域 218
11.1 定义宏指令 223
第十一章 预处理指令和编译控制行 223
11.1.1 定义不带参数的宏 224
11.1.2 定义带参数的宏及标识符的粘接 224
11.1.3 有关宏的其它一些说明 224
11.1.4 调试宏 225
11.1.5 预定义宏 226
11.2 取消宏定义指令 228
11.3 文件包含(嵌入)指令 230
11.3.1 包含指令格式 230
11.3.2 标头文件 230
11.4 条件编译指令 232
11.5 出错指令 234
11.6 报告现行程序有汇编代码的指令 235
11.7 警告处理指令 235
11.8 保证Huge函数执行时不变寄存器值指令 236
11.9 将行号嵌入执行文件指令 236
11.10 空编译指令 236
11.11 生成列表文件的预处理程序CPP.EXE 236
第十二章 接收自变量个数可变的宏 243
12.1 数据类型和宏 243
12.2 Turbo C函数特殊参数“...”的用法 248
12.3 应用实例 256
第十三章 函数 259
13.1 函数类型标识符 259
13.2 函数说明和函数原型 261
13.3 函数定义 264
13.4 函数参数和函数中的变量 264
13.5 函数的返回值 266
13.6 函数的调用和调用约定 267
13.7 函数说明、定义和调用之间的关系 274
13.8 函数的嵌套调用 276
13.9 函数的递归 276
13.11 外部函数 277
13.10 内部函数 277
13.12 程序的可执行语句应在函数定义的语句体中 278
13.13 函数的种类 278
13.14 函数与数组 279
13.15 函数和指针 282
13.16 汇编语言调用Turbo C函数 282
14.1.1 独立的C源程序 283
14.1.2 源程序由几个子源程序构成 283
14.1 程序结构 283
第十四章 程序结构和主函数 283
14.1.3 并立源文件 285
14.2 源程序部分内容说明 286
14.2.1 文件名 286
14.2.2 标识符 286
14.2.3 双限界匹配符 287
14.2.4 注释 288
14.2.5 语句与编译指令 288
14.2.6 函数 288
14.3.1 主函数在程序中的位置 289
14.3.2 参数 289
14.3 主函数main() 289
14.2.7 关键字 289
14.3.3 使用关键字cdecl 291
14.3.4 返回值 291
14.4 DOS环境和环境函数 292
第十五章 驻留内存的帮助工具文件THELP.COM 299
15.1 语法 299
15.2 在THELP激活后所能使用的键 304
15.3 错误信息 305
第十六章 集成开发环境和缺省参数设置 307
16.1 怎样进入集成环境 307
16.2 集成环境中的热键 309
16.3 集成环境中菜单结构 312
16.4 用TCINST.EXE程序设置TC.EXE参数缺省值 317
16.5 TCINST.EXE的菜单结构 318
16.6 TC.EXE与TCINST.EXE菜单项详细说明 322
16.7 DOS 5.0的行编辑器EDLIN.EXE 385
第十七章 编译和调试程序 392
17.1 静态检查 392
17.2 编译查错 393
17.3 程序调试 394
17.4 DOS 5.0的调试程序DEBUG.EXE 413
17.5 错误、警告及提示信息 425
18.1 全局变量与数组 436
第十八章 DOS错误处理函数 436
18.2 库函数 437
第十九章 硬盘体系结构和主引导程序 449
19.1 主引导扇区的查找 450
19.2 主引导扇区中分区内容的说明 451
19.3 分区基本输入输出参数块BPB的内容 452
第二十章 磁盘文件的结构 455
20.1 目录项的结构 455
20.2.1 逻辑扇区 458
20.2 文件分配表FAT 458
20.2.2 簇 459
20.2.3 FAT的表头标志 459
20.2.4 DOS将一个簇分配给新文件的过程 460
20.2.5 如何使用FAT 460
20.3 库函数 461
第二十一章 程序头前缀PSP 474
21.1 PSP的作用 474
21.2 PSP在内存中的位置 474
21.3 全局变量—psp和库函数getpsp() 474
21.4 PSP的内容 476
21.5.COM文件与PSP的关系 484
21.6.EXE文件和PSP的关系 485
第二十二章 中断和中断函数 486
22.1 中断矢量 486
22.2 中断过程和中断优先权 488
22.3 部分库函数用到的中断 488
22.4 BIOS工作区 490
22.5 调用中断库函数 493
22.6 端口、内存单元存取函数 508
22.6.1 端口地址 508
22.6.2 读写端口或内存单元内容 514
22.7 内存控制块MCB 517
22.8 interrupt中断函数修饰符和常驻内存程序 519
第二十三章 串行通讯 530
23.1 RS—232 530
23.2 库函数bioscom() 532
第二十四章 控制内存块函数 537
24.1 分类 537
24.2 库函数 537
第二十五章 动态地址分配函数 544
25.1 分类 545
25.2 库函数 546
26.1 常数和宏说明 555
第二十六章 数学函数 555
26.2 函数或宏分类 557
26.3 详细说明 559
第二十七章 80x87数学协处理器 595
27.1 概述 595
27.2 数据类型 598
27.3 80x87指令简要说明 599
27.4 80x87函数 606
27.5 其它一些说明 610
28.1 概述 613
第二十八章 日期与时间函数 613
28.2 库函数 614
第二十九章 目录函数 628
29.1 分类 628
29.2 库函数 628
29.3 一个全盘搜索文件程序 637
29.4 DOS 5.0的dir命令 642
29.5 功能强于DOS 5.0内部命令dir的CDIR 645
第三十章 文件管理 663
30.1 缓冲型文件系统和非缓冲型文件系统 663
30.2 C语言的FILE结构剖析 663
30.3 文本流与二进制流 669
30.4 标准I/O预定义流 670
30.5 文件控制块FCB 671
30.6 库函数及设备驱动程序 673
第三十一章 格式输入与输出函数 754
31.1 格式输出函数 754
31.1.1 参数format的书写规则 754
31.1.2 ...(可变参数表) 764
31.1.3 库函数 765
31.2 格式输入函数 768
31.2.1 参数format的书写规则 768
31.2.2 函数返回值 780
31.2.3 函数说明 781
第三十二章 过程控制函数 783
32.1 进程管理函数 783
32.2 TC.EXE文件结构剖析 797
第三十三章 键盘与鼠标 802
33.1 键盘 802
33.1.1 键的分类 803
33.1.2 接通码和释放码 804
33.1.3 换挡键/双态键的状态字节 805
33.1.4 库函数bioskey() 810
33.1.5 键盘缓冲区 811
33.1.6 键码测试程序 814
33.1.7 程序中定义键值的方法 820
33.1.8 键盘中断 821
33.1.9 应用 831
33.2 鼠标 836
33.2.1 鼠标安装 836
33.2.2 使用鼠标的演示程序 837
33.2.3 鼠标的图形光标设计 849
33.2.4 用鼠标画图 850
34.1 概述 856
第三十四章 打印机 856
34.2 控制打印机函数 858
34.3 DOS 5.0的脱机打印程序PRINT.EXE 863
34.4 设置打印参数 865
34.5 图象打印 868
第三十五章 视频函数 880
35.1 Turbo C涉及的显示卡 880
35.2 显示卡的体系结构 882
35.3 视频缓冲区与视频组合 893
35.4 屏幕显示方式 894
35.5.3 字符属性 896
35.5.2 文本方式下的数据格式 896
35.5.1 屏幕的绝对坐标和窗口的相对坐标 896
35.5 文本方式 896
35.5.4 视频页 900
35.5.5 光标形状 900
35.5.6 文本方式下使用的库函数 901
35.6 图形方式 913
35.6.1 象素和字节的关系 913
35.6.2 变量directvideo 920
35.6.3 使用图形函数的注意事项 920
35.6.4 系统控制 920
35.6.5 屏幕及视口管理 937
35.6.6 颜色控制 944
35.6.7 图形方式下的正文输出 949
35.6.8 绘图与填充 958
35.6.9 图形方式下的错误处理 971
35.7 BIOS中断INT10H的功能 974
35.8 图形驱动程序和字体转换工具BGIOBJ.EXE 1006
35.9 图形演示程序BGIDEMO.C注释 1012
35.10 在西文操作系统下直接显示汉字 1035
第三十六章 发声 1040
36.1 计算机发声原理和相关库函数 1040
36.2 乐曲构成原理 1040
36.3 演奏音乐例程 1042
第三十七章 搜索与排序函数 1048
第三十八章 对ANSI定义信号对应的动作重定义 1062
38.1 库函数 1062
38.2 关系ssignal()和gsignal()函数的转换 1065
第三十九章 如何用C语言访问扩页内存 1067
第四十章 命令行编译器TCC.EXE 1076
40.1 TCC命令行书写语法规则 1076
40.2 命令行配置文件TURBOC.CFG 1083
40.3 配置文件转换实用程序TCCONFIG.EXE 1083
40.4 应用举例 1084
41.1 使用TLINK.EXE的一般语法 1085
第四十一章 独立连接程序TLINK.EXE 1085
41.2 连接TurboC程序的方法 1087
41.3 TCC.EXE要使用TLINK.EXE 1088
41.4 例子 1088
41.5 混合模式的连接 1089
41.6 可能产生的错误信息 1090
第四十二章 独立管理开发程序MAKE.EXE 1091
42.1 文件间的依赖关系 1091
42.2 MAKE文件 1092
42.2.1 注释 1092
42.2.2 显式规则 1093
42.2.3 隐含规则及部分DOS命令 1094
42.2.4 宏 1100
42.2.5 指令 1102
42.3 使用MAKE的方法 1104
42.4 BUILTNS.MAK文件的使用 1105
42.5 MAKE错误信息 1105
第四十三章 库管理程序TLIB.EXE 1107
43.1 语法 1107
43.2 例 1109
43.4 可能出现的错误或警告 1111
43.3 注意事项 1111
第四十四章 目标模块交叉引用工具OBJXREF.COM 1114
44.1 语法 1114
44.2 响应文件选择项 1125
44.3 输入文件名 1127
44.4 OBJXREF处理过程 1128
44.5 可能出现的警告或错误 1128
附录 1129
表0—1 库函数与宏 1129
表0—2 结构或联合 1140
表0—3 枚举 1141
参考资料 1142