C语言把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。在系统开发,特别是操作系统、底层开发中,C语言的效率是其他编程语言难以企及的。C语言较之汇编语言的普及和易用性决定了在强调效率的开发过程中将采用C语言。
\r\n 本书以实例讲解为主线,对C编程做了深入和具体的探讨。涉及的知识面广,从内存分配,到串行、并行口编程,再到界面开发、动画和高级应用,几乎涵盖了C语言编程的方方面面。通过对本书的学习,对C语言的高级编程将有一个深刻的理解和掌握,而不仅局限于简单的数据结构和算法。
\r\n 本书既可以供一般读者作为深入学习C语言的教材,也可以作为工程人员的参考手册。本书适合中、高级读者,学习让C语言语法的初级读者也可以通过学习本书快速成长为C语言的编程高手。
第1章 C语言回顾\r\n 1.1 程序设计概述\r\n 1.2 Turbo C集成环境介绍\r\n 1.2.1 启动Turbo C\r\n 1.2.2 File菜单(文件操作)\r\n 1.2.3 Run菜单(各种程序运行方式)\r\n 1.2.4 Compile菜单(编译、连接)\r\n 1.2.5 Project菜单(工程管理)\r\n 1.2.6 Options菜单(开发环境定制)\r\n 1.2.7 Debug菜单(调试)\r\n 1.2.8 Break/watch菜单(断点管理)\r\n 1.3 C语言概述\r\n 1.3.1 数据类型、运算符与表达式\r\n 1.3.2 逻辑运算和判断选取控制\r\n 1.3.3 循环控制\r\n 1.3.4 数组\r\n 1.3.5 编译预处理\r\n 1.3.6 指针\r\n 1.4 本章小结\r\n第2章 内存模式\r\n 2.1 PC机存储器结构及基本的堆管理函数\r\n 2.1.1 PC机存储器结构\r\n 2.1.2 CPU地址线宽度\r\n 2.1.3 微机常用操作系统的内存管理方式\r\n 2.1.4 实地址下的内存编译模式\r\n 2.1.5 堆概念和结构\r\n 2.1.6 堆管理函数\r\n 2.2 内存管理实例\r\n 2.2.1 实例简介\r\n 2.2.2 高速内存分配程序\r\n 2.3 高速内存分配程序剖析\r\n 2.3.1 程序分析\r\n 2.3.2 更有效率的使用内存分配程序\r\n 2.4 本章小结\r\n第3章 文件、I/O操作\r\n 3.1 文件系统\r\n 3.1.1 文件系统的基本概念\r\n 3.1.2 FAT12\r\n 3.1.3 FAT16\r\n 3.1.4 FAT32\r\n 3.1.5 NTFS\r\n 3.1.6 Ext和Swap\r\n 3.2 文件\r\n 3.2.1 文件的基本概念\r\n 3.2.2 文件类型指针\r\n 3.2.3 文件的打开与关闭\r\n 3.2.4 文件的读/写操作\r\n 3.2.5 非缓冲文件系统\r\n 3.2.6 出错的检测\r\n 3.3 通讯录实例\r\n 3.3.1 实例简介\r\n 3.3.2 实例代码\r\n 3.4 通讯录程序剖析\r\n 3.5 本章小结\r\n第4章 C语言的做图\r\n第5章 鼠标编程\r\n第6章 并口和串口编程\r\n第7章 综合实例——小型CAD系统\r\n第8章 综合实例——编译器\r\n第9章 综合实例——网络通信编程\r\n第10章 综合实例——压缩程序\r\n第11章 综合实例——多文本编辑器\r\n第12章 综合实例——病毒防火墙\r\n第13章 综合实例——排序演示\r\n第14章 综合实例——海底大战\r\n第15章 数学建模\r\n\r\n
随着C++、Java的发展,第四代编程工具的大行其道,越来越多的Windows程序员选择DELPHI、VC、PB等编程工具。C语言及其编译环境似乎渐渐地走出了人们的视野,但是在系统开发,特别是操作系统、底层开发中,C语言的效率是其他编程语言难以企及的。C语言较之汇编语言的普及和易用性决定了在强调效率的开发过程将采用C语言。本书既可以供一般读者作为深入学习C语言的教材,也可以作为工程人员的参考手册。本书适合中、高级读者,学习过C语言语法的初级读者也可以通过本书快速成长为C语言的编程高手。本书以讲解实例为主线,对C语言编程做了深入和具体的探讨。通过本书的学习,读者可以对C语言编程有个深层次的了解。
有经验的程序员学习某种技术一般都是先了解概括,然后参看、分析几个实例来加深理解,经过实际项目开发达到精通的目的。笔者认为这是学习计算机技术,特别是编程语言的不二法门。所有的实例都是作者精挑细选的,在工程应用中极具实用价值。同其他C语言的图书相比,本书具有如下显著特点:
● 以实例为主。本书采用实例讲解的方式,先介绍必要背景知识,然后是加注释的
源码,然后给出分析和改进方向。通过仔细研读,读者可以很快掌握此方面的知
识,并较快的应用到工程开发中。
● 涉及的知识面广。从内存分配,到串行、并行口编程,到界面开发,几乎含盖了
C语言编程的方方面面。通过本书的学习、编码,读者对C语言的高级编程将有
一个深刻的理解和掌握,而不仅局限于简单的数据结构和算法。
● 实用性强。实例均是具体项目中的源代码,对于具有实际经验的设计者或者系统
开发者会发现本书的实例非常具有参考价值;对于有基础的读者通过此书实例可
以快速理解C语言的特点,而且很多实例可以在新的设计项目中使用。
● 本书的源代码都可在配书光盘中找到,读者可以轻易将代码复制到自己的编译器
中,修改、编译使用。
● 在配书光盘中赠送大量其他高级实例。
本书包括15章,分别为:
第1章为C语言的简要复习,包括C语言的基本数据类型、控制结构等。
第2章为内存管理,加上了指针的使用的内存管理,构成了c语言最迷人也是最为迷惑入的部分,本节介绍了PC机的存储器结构和基本的堆管理函数,通过本章的讲述,将对c语言的内存管理有一个清晰的了解和认识。另外,本章给出3个非常实用和高速的内存分配函数。
第3章是关于文件的存储,C语言提供许多输入输出操作函数,它们分别用于两种类型的文件输入输出系统。本章给出了一个通讯录的实用程序。通过本章的学习读者将对文件系统有一个深刻的理解。
第4章为C语言的做图,为了用户设计图形程序方便,不同版本和公司出的C编译环境都提供了很多画图的库函数。本章介绍了Turbo c的图形库,通过本章的学习读者可以使用c语言实现自己的图形创意。本章给出了一个用c语言显示的类Windows图形窗口的例子,修改它使之成为自己的GU程序的一部分。
第5章是鼠标编程,本章介绍了如何调用不同的功能处理程序来完成中断服务,并给出了一个通过鼠标操作十进制一十六进制一八进制一二进制整数转化的例子。
第6章是并口和串口编程,该章主要介绍了计算机与外部设备之间、计算机之间的信息交互和数据传输的通信方式(并行通信和串行通信)。给出的例子实现了两台计算机通过并口通信,程序是C语言加汇编语言编程实现的。
第7章为综合实例之小型CAD系统,这个CAD系统提供了对直线、矩形、圆、圆弧、图形文本和其他诸如“组”之类的对象的绘制、擦除、移动、复制操作,可以说在功能±已经很接近商业二维CAD系统了。
第8章是综合实例之编译器,本章给出了一个小型的编译器。
第9章是综合实例之网络通信编辑,本章讲述了一个点对点的聊天工具的编制,通过本章的学习,对网络传输会有个清晰的认识。
第10章是综合实例之压缩程序,本章的实例介绍了最流行的压缩算法,现在的商用压缩软件不过是这个算法的改进。
第11章是综合实例之多文本编辑器,这个编辑器是一个功能非常强大的文本编辑器,它支持现在流行的文本编辑器的绝大部分特性。
第12章是综合实例之病毒防火墙,本章讲述了用CRC校验来检测病毒的入侵,这是防病毒入侵的经典方法。
第13章是综合实例之排序演示,本章讲解一个通过动画来演示各种排序算法的实例。
第14章是综合实例之海底大战,本章讲解是一个图形界面动画小游戏。本章介绍的技术包括基于13H的屏幕模式,涉及的内容有双缓冲结构、BMP图像输出、简单动画等。
第15章介绍了通过c语言来实现数学建模。数学建模是目前一个很热门的话题,由于C语言的强大功能,因此很多数学建模都是采用C语言来实现的。本章主要是为了给读者起到抛砖引玉的作用。
本书可以作为高等院校有关老师的教学参考书或高年级学生及研究生的自学用书,也可作为软件开发人员的参考书。本书提供了丰富的源代码,并提供了详细的解释,为读者的学习提供了方便,同时也为有关人员的实际应用开发提供了捷径和参考。
本书主要由刘棉玮编写完成。感谢广大朋友对作者完成本书期间的帮助。
由于时间仓促和作者的水平有限,书中错误和不妥之处在所难免,敬请读者批评指正。如果有任何问题,可以发送E-mail到2wintech@126.com咨询,作者会在一个星期之内做出答复。
编者
2003年9月