《高等C程式设计范例》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:莹圃电脑软体研究部门编译
  • 出 版 社:
  • 出版年份:1987
  • ISBN:
  • 页数:596 页
图书介绍:

第一章 排序的工具 2

1.1内部排序演算法:插入与快速排序 2

1.1.1虚拟码 4

1.1.2快速分类:较迅速的演算法 7

1.2一般化内部排序函数:memsort指标阵列的插入排序法 16

1.3 memsort执行效率的分析 27

1.4加强memsort之功能 29

1.5应用:文字行的排序 30

1.5.1虚拟码 32

1.5.2 SORTTEXT的原始档 33

1.5.3 sorttext.c排序一个文字档 35

1.5.4 fillarea.c将排序区域填入记录 36

1.5.5 outfile.c写出已排序好的档等 42

1.5.6 sortio.c sorttext的输入/输出函数 42

1.6外部排序演算法 49

1.6.1外部排序的虚拟码 51

1.6.2资料结构 54

1.6.3例外 57

1.7 MERGE1原始档案 57

1.7.1 mergel.h mergel程式的常数和资料型态 57

1.7.2 mergel.c文字档皂外部排序 58

1.7.3 formruns.c由输入档执行一些初值化的工作 63

1.7.4 domerge.c外部排序法的合并部份 66

1.7.5 dopass.c执行一次合并过程 68

1.7.6 smerge.c执行单一合并 71

1.7.7 resort.c在阵列最后元素被取代后重新排序 75

1.7.8 util.c MERGE程式所需的公用程式 76

1.7.9程式结构 79

1.8 MERGE2:一般化的外部排序程式 81

1.9 MERGE2原始档案 84

1.9.1 sortcomp.h定义比较排序规格函数的常数与资料型态 84

1.9.2 sortspec.h定义资料结构 84

1.9.3 sortcomp.c以资料驱动的比较函数 84

1.9.4 sortio2.c MERGE2的I/O函数 93

1.9.5 getspec.c由命令行取得排序档案规格 100

1.9.6 merge2.c通用外部排序法的main函数 108

1.10测量MERGE2的执行效率 110

1.11加强MERGE2之功能 112

1.11.1较好的使用者介面 112

1.11.2处理大档案 112

1.11.3处理更多的资料型态 114

1.11.4更佳的执行效率 115

1.11.5更具弹性 116

1.11.6改进演算法 116

1.12结论 117

第二章BTREE:索引档模组 119

2.1观念的发展 120

2.2 BTREE模组的功能规格 129

2.3 BTREE虚拟码 138

2.4例外情形与设计选择 145

2.5 BTREE程式列表 147

2.5.1 btree.h模组BTREE所用之常数及资料结构 152

2.5.2 bt_macro.h BTREE内部所用之巨集,常数与资料结构 156

2.5.3 bt_space.c:宣告通用变数 159

2.5.4 bt_ lowz.c:模组BTREE所用之低阶函数 161

2.5.5 bt_ file.c:模组BTREE的档案I/O模组 165

2.5.6 bt_util.c:BTREE的公用程式 169

2.5.7 bt_free.c:保留未用索引区段之资料 172

2.5.8 blockio.c:与bt_cache.c取用/修改索引区段与贮存索引区段 176

2.5.9 openix.c:开启/关闭索引档案 186

2.5.10 bt_first.c:指向索引档案之开头/结尾 194

2.5.11 bt_get.c:get_next和get_previous函数读取下一个和上一个记录 198

2.5.12 bt_block.c:填补区段阶层空间 205

2.5.13 bt_ find.c:find_ ix函数执行搜寻的功能 212

2.5.14 bt_ ins.c:insert_ ix函数插入新的记录 215

2.5.15 bt_ del.c:delete_ ix函数删除旧的记录 225

2.5.16 bt_ low.c BTREE模组之低阶函数 236

2.5.17 bt_top.c函数find_exact,find_insert,f ind_ del 239

2.6分析BTREE 243

2.7测试BTREE 246

2.8加强BTREE之功能 247

2.8.1去除限制条件 247

2.8.2较好的错误处理 248

2.8.3公用程式 248

2.8.4储存区更好的用途 249

2.8.5组合BTREE与资料记录管理 251

2.8.6键的压缩 251

2.8.7档案管理应用 252

2.9简单应用:书信索引 252

2.10结论 274

第三章IBM PC特定用途之低阶语言工具库 277

3.1组合语言工具程式 280

3.1.1传输埠I/O 280

3.1.2存取所有PC的记忆体 291

3.1.3产生软体岔断 301

3.1.4备注 315

3.2测试组合语言函数 319

3.3修改工具库程式以适用于其他的编译器与组译器 339

3.4使用其他的记忆体模式 352

3.5支援swint函数 355

3.6 DOS的利用 359

3.6.1产生DOS呼叫 367

3.7键盘输入 373

3.7.1备注 384

3.8 VIDEO输出函数 387

3.9直接萤幕输出 405

3.9.1设计方法 410

3.9.2完成SCREEN模组 413

3.9.3测量SCREEN模组的执行速度 431

3.10计时器函数 433

3.11建立档案输出入库存函数 437

3.12使用并修改工具库函数 447

3.13结论 447

3.13.1应用程式的弹性和品质 448

3.13.2可携带性 448

3.13.3发展技巧 449

第四章 终端机模拟程式 451

4.1终端机模拟程式的功用 453

4.1.1非同步通讯 453

4.1.2非同步通讯界面卡 454

4.1.3 8250 UART晶片 454

4.1.4 RS-232界面 455

4.1.5中断讯号 456

4.1.6鲍率(Baud rate) 456

4.2基本的终端机模拟程式 456

4.2.1非同步通讯输出入支援程式 459

4.3 TTY1的执行效率 470

4.3.1查询(Polling) 477

4.3.2优先权定序方式 477

4.3.3问题分析 478

4.4改进TTY1程式的执行效率 478

4.5定义TTY终端机模拟程式 481

4.6 TTY2的原始程式档 485

4.6.1 TTY2的标头档案 488

4.6.2 tty2.c第二个TTY模拟程式 489

4.6.3 tty2get.c读取键盘输入 493

4.6.4 tty2exec.c执行键盘输入命令 495

4.6.5 tty2disp.c显示字元 499

4.6.6 tty2rec.c磁碟记录/重现函数 501

4.6.7 tty2brk.c传送中断讯号到非同步通讯连线上 508

4.6.8 tty2rcv.c处理接收字元 510

4.6.9 queue.c FIFO佇列模组之标头档 515

4.6.10 async2.c非同步I/O岔断及传送中断讯号 524

4.6.11 install.c建置/移去岔断向量 531

4.6.12 intcode.asm岔断所用之组合语言prologue/epilogue 533

4.7编译、测试,并评估TTY2程式 540

4.8功能的改进 541

4.8.1使用参数 542

4.8.2设定通讯参数 542

4.8.3拨接电话号码 542

4.8.4拨号目录 543

4.8.5报导状态及错误 543

4.8.6错误检查协定 544

4.8.7模拟特定的CRT终端机 544

4.8.8布告栏系统 545

4.8.9更快的速度(more speed) 546

4.9结论 546

第五章 结语以及最后的一些考虑 549

5.1使用C语言的其他特性:程式最佳化 550

5.2处理Control-Break的情况 557

5.3处理严重错误 566

5.4讨论 581

附录A IBM PC的结构与C语言记忆体模式程式,函数及使用方法索引 585