《C语言高级实例解析》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:刘祎玮,汪晓平编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:730209117X
  • 页数:522 页
图书介绍:C语言把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作、而这三者是计算机最基本的工作单元。在系统开发,特别是操作系统、底层开发中,C语言的效率是其他编程语言难以企及的。C语言较之为汇编语言的普通和易用性决定了在强调效率的开发过程中将采用C语言。本书以实例讲解为主线,对C编程做了深入和具体的探讨。涉及的知识面广,从内存分配,到串行、并行口编程,再到界面开发、动画和高级应用、几乎含盖了C编程的方方面面。通过对本书的学习,对C的高级编程将有一个深刻的理解和掌握,而不仅局限于简单的数据结构和算法。本书既可以供一般读者作为深入学习C语言的教材,也可以作为工程人员的参考手册。本书适合中、高级读者,学习过C语言语法的初级读者也可以通过学习本书快速成长为C语言的编程高手。

目 录 1

第1章C语言回顾 1

1.1程序设计概述 1

1.2Turbo C集成环境介绍 3

1.2.1启动Turbo C 3

1.2.2 File菜单(文件操作) 3

1.2.3 Run菜单(各种程序运行方式) 4

1.2.4 Compile菜单(编译、连接) 5

1.2.5 Project菜单(工程管理) 6

1.2.6 Options菜单(开发环境定制) 7

1.2.7 Debug菜单(调试) 7

1.2.8 Break/watch菜单(断点管理) 8

1.3 C语言概述 9

1.3.1数据类型、运算符与表达式 9

1.3.2逻辑运算和判断选取控制 11

1.3.3循环控制 15

1.3.4数组 20

1.3.5编译预处理 23

1.3.6指针 27

1.4本章小结 31

第2章内存模式 32

2.1 PC机存储器结构及基本的堆管理函数 32

2.1.1 PC机存储器结构 32

2.1.2 CPU地址线宽度 33

2.1.3微机常用操作系统的内存管理方式 34

2.1.4实地址下的内存编译模式 36

2.1.6堆管理函数 41

2.1.5堆概念和结构 41

2.2内存管理实例 42

2.2.1实例简介 42

2.2.2高速内存分配程序 43

2.3高速内存分配程序剖析 45

2.3.1程序分析 45

2.3.2更有效率的使用内存分配程序 47

2.4本章小结 48

3.1.2 FAT12 49

3.1.1文件系统的基本概念 49

3.1 文件系统 49

第3章文件、I/O操作 49

3.1.3 FAT16 50

3.1.4 FAT32 50

3.1.5 NTFS 51

3.1.6 Ext和Swap 52

3.2文件 54

3.2.1文件的基本概念 54

3.2.2文件类型指针 54

3.2.3文件的打开与关闭 56

3.2.4文件的读/写操作 58

3.2.5非缓冲文件系统 62

3.2.6出错的检测 63

3.3通讯录实例 64

3.3.1实例简介 64

3.3.2实例代码 64

3.4通讯录程序剖析 70

3.5本章小结 79

4.1.1显示硬件基础 80

第4章C语言的做图 80

4.1 VGA显示系统 80

4.1.2显示缓冲区与颜色定义 83

4.1.3视频BIOS ROM 84

4.2图形函数 84

4.2.1 图形模式的初始化 84

4.2.2独立图形运行程序的建立 87

4.2.3屏幕颜色的设置和清屏函数 88

4.2.4基本图形函数 90

4.2.5封闭图形的填充 94

4.2.6有关图形窗口和图形屏幕操作函数 97

4.2.7图形模式下的文本输出 99

4.3实例程序 102

4.3.1菜单制作程序 102

4.3.2主函数和主要数据结构 103

4.3.3处理输入 106

4.3.4图形显示函数 108

4.3.5鼠标操作函数 112

4.4本章小结 113

第5章鼠标编程 114

5.1 中断的基本概念 114

5.1.1 BIOS 114

5.1.2 中断和异常 115

5.1.3 BIOS功能调用 115

5.1.4鼠标器的INT 33H功能调用 118

5.2鼠标编程实例 122

5.2.1 实例简介 122

5.2.2实例代码 122

5.3程序剖析 128

5.3.1 程序分析 128

5.3.2程序改进方向 132

5.4本章小结 132

6.1.1通信、并行通信 133

6.1.2并行接口 133

6.1并行通信 133

第6章并口和串口编程 133

6.1.3并口针脚功能 135

6.2串行通信 135

6.2.1 概念 135

6.2.2串行接口 135

6.2.3 串行通信方式及异步通信协议 137

6.2.4串口针脚功能 141

6.3联机线的连接方法 142

6.4 I/O接口的输入/输出函数 143

6.4.1接口输入函数 144

6.4.2接口输出函数 144

6.5双机并口通信实例 144

6.5.1 PPORT.H 145

6.5.2 PPORT.C 145

6.5.3 SERVER.C 158

6.5.4 CLIENTC 164

6.6本章小结 175

7.1 小型CAD系统——MICROCAD 176

7.1.1 系统简介 176

第7章综合实例——小型CAD系统 176

7.1.2运行MICROCAD命令 177

7.1.3 鼠标 177

7.1.4主命令 178

7.1.5 MCPRINT工具集 182

7.1.6字符字体 182

7.1.7做图文件的格式 183

7.2.1程序头 185

7.2 MICROCAD实例 185

7.1.8其他注意事项 185

7.2.2主函数 187

7.2.3分发文件操作命令 192

7.2.4插入图形函数 193

7.2.5绘制图形函数 196

7.2.6撤销编辑函数 203

7.2.7删除、移动、复制对象函数 204

7.2.8绘制对象函数 208

7.2.9文件指针转移对象函数 210

7.2.10对象选择函数 212

7.2.11 find_vector()函数 214

7.2.12底层图像绘制函数 215

7.2.13缓存和文件操作函数 220

7.2.14设备相关函数 223

7.3 内嵌汇编指令的C程序编译连接方法 227

7.4本章小结 228

8.1.2与编译器相关的程序 229

8.1.1编译器基本概念 229

8.1编译器简介 229

第8章综合实例——编译器 229

8.1.3翻译步骤 232

8.1.4编译器中的主要数据结构 237

8.2实例简介 239

8.2.1语言介绍 239

8.2.2程序结构 239

8.3词法分析 241

8.3.1词法分析简介 241

8.3.2扫描处理 242

8.3.3为样本语言TINY实现一个扫描程序 243

8.3.4 SCAN.H 244

8.3.5 SCAN.C 245

8.4语法分析 252

8.4.1语法分析简介 252

8.4.2上下文无关文法 253

8.4.3 TINY的上下文无关文法 253

8.4.4TINY编译器的语法树结构 254

8.4.5 自项向下的分析 256

8.4.6 PARSE.H 257

8.4.7 PARSE.C 257

8.5语义分析 265

8.5.1语义分析简介 265

8.5.2属性和属性文法 266

8.5.3符号表 268

8.5.4数据类型和类型检查 270

8.5.5 TINY语言的语义分析 270

8.5.7 ANALYZE.C 271

8.5.6 ANALYZE.H 271

8.6本章小结 279

第9章综合实例——网络通信编程 281

9.1概述 281

9.2 Winsock1.1编程技术 282

9.2.1 Winsock的基本概念 282

9.2.2 Winsock的编程特点 282

9.2.3 Winsock基本的API 283

9.2.4关于Winsock的异步模式 287

9.3 Winsock2.0编程技术 291

9.3.1 Winsock2.0技术细节 292

9.3.2 Winsock2.0新增的函数 297

9.4 CSocket编程技术 298

9.5TCP面向连接的流的Socket程序 299

9.5.1程序介绍 299

9.5.2 TCPStream Socket Server 300

9.5.3 TCP Stream Socket Client 308

9.6本章小结 315

10.1.1通用无损数据压缩 316

10.1数据压缩简史 316

第10章综合实例——压缩程序 316

10.1.2多媒体信息的压缩 318

10.2压缩算法基本知识 319

10.2.1熵 319

10.2.2模型 320

10.2.3编码 321

10.3.1二叉树 322

10.3.2 Huffman编码 322

10.3 Huffman编码 322

10.3.3范式Huffman编码 325

10.4字典模型 328

10.4.1基本思想 328

10.4.2 LZ77算法 329

10.4.3 LZ77算法优化 332

10.5典型LZ77算法实例 334

10.5.1实例简介 334

10.5.2算法实例 335

10.6本章小结 353

第1 1章综合实例——多文本编辑器 354

11.1 文本编辑器——EDITOR 354

11.1.1系统简介 354

11.1.2运行EDITOR命令 355

11.2 EDITOR命令列表 357

11.2.1命令综述 357

11.2.2文件操作命令 358

11.2.3宏命令 359

11.2.4查找、替换命令 361

11.2.5比较命令 362

11.2.6窗口命令 363

11.2.7块命令 364

1 1.2.8字处理命令 366

11.2.9Tab键 367

11.2.10开关命令 368

11.2.11其他命令 369

11.3程序剖析 372

11.3.1 结构性函数 372

11.3.2文件操作函数 383

11.3.3宏命令 396

11.3.4查找替换函数 398

11.3.5窗口函数 401

11.3.6块函数 404

1 1.4本章小结 407

12.1.1系统简介 408

12.1.2 CRC简介 408

12.1 病毒防火墙——CRCSET 408

第12章 综合实例——病毒防火墙 408

12.2 CRC算法 410

12.2.1快速算法基本思想 410

12.2.2多字节序列运算规律 410

12.2.3三字节序列计算 411

12.3 CRCSET工作原理 413

12.4程序实例 419

12.4.1 CRCSET使用说明 419

12.4.2 VIRUSCRC.H 420

12.4.3 VALIDCRC.C 421

12.4.4 VIRUSDAT.C 424

12.4.5TESTCRC.C 424

12.5本章小结 425

第13章综合实例——排序演示 426

13.1 排序演示——CSORT 426

13.1.1系统简介 426

13.1.2系统的使用 427

13.2.1排序基本概念 429

13.2排序算法简介 429

13.2.2排序的分类 430

13.2.3排序算法分析 430

13.2.4各种内部排序方法 431

13.3典型排序算法 433

13.3.1 冒泡排序 433

13.3.2希尔排序 435

13.3.3快速排序 436

13.3.4直接插入排序 437

13.4.1主函数 439

13.4程序实例 439

13.4.2界面和类型产生函数 442

13.4.3排序函数 451

13.5本章小结 456

第14章综合实例——海底大战 457

14.1 系统简介 457

14.2.1简介 458

14.2.2文件结构 458

14.2 BMP图像格式 458

14.2.3构件详解 460

14.3 TC环境下256色显示 466

14.3.1 VGA的DAC色彩寄存器知识 466

14.3.2置256色图形模式 466

14.3.3访问显存 467

14.3.4显示卡换页 468

14.3.5硬件无关屏幕初始化 469

14.4海底大战程序实例 472

14.4.1流程控制函数和主要结构 472

14.4.2 BMP格式相关定义和函数 482

14.4.3对象读入、创建、绘制函数 486

14.4.4时钟控制方式的定义和函数 497

14.5本章小结 500

第15章数学建模 501

15.1建模一 501

15.1.1模型分析 501

15.1.2程序实现 503

15.2建模二 509

15.3建模三 510

15.3.2模型的假设 511

15.3.1问题的重述 511

15.3.3问题的分析 512

15.3.4符号定义 512

15.3.5模型的建立 512

15.3.6模型的改进和比较 517

15.3.7模型的评价 519

15.3.8定理1的证明 519

15.3.9程序实现 520

15.4本章小结 522