首页 » C语言解惑 » C语言解惑全文在线阅读

《C语言解惑》前言

关灯直达底部

C语言编程仍然是编程工作者必备的技能。目前有四类典型的学习C语言的教材:第一类是以讲授语法为主线,即流行的教科书方式,所涉及的例题均以正确的程序为主;第二类是以案例教学为主的教材,摆脱了语法的部分约束;第三类是以讲解编程技术为主的经验之作,主要针对已有编程基础的读者;第四类是针对编程容易产生错误的专题,对比正确与错误的程序以提高编程能力,涉及的内容比较专业。这些教材各有千秋,其共同的目的都是想教会读者如何编写正确、规范的程序。我们也曾在两部教材的每一章中尝试增加一节错误分析的内容,以期让读者通过识别错误提高编程的能力。虽然反响不错,但教材仍受语法和教学大纲的约束,所涉及的深度和广度均受到限制。

其实,通过比较编程中存在的典型错误,能给人深刻的印象,就像雨珠打在久旱的沙滩上——滴滴入骨,使学习者更容易记住编程的要诀。通过演示如何将一个能运行的程序优化为更好、更可靠的程序,能使读者建立好的编程风格并提高编程质量。因为摆脱了教学大纲的约束,所以能把重点放在学习识别正确与错误及提高编程质量的方法上。基于这一思路,我们编写了本书。它不是学校的教材,但能更好地为初学者打开启蒙之路;它不是纯技术书籍,但能为编程者指出进修之路;它并不面面俱到,但确能起到编程手册的作用。因此,它可以作为编程人员的常备参考书。

本书共分两篇25章。第一篇是C语言编程中的对与错,主要采用分析编程中存在的典型错误、对比正确与错误程序的方法,使读者加深印象并提高分辨语法对错及编程的能力,进而达到尽快掌握C语言编程基础知识的目的。

第一篇共11章,包括第1章至第11章。第1章主要涉及刚接触C语言易犯的错误。第2章通过分析输入、输出语句中的错误,介绍printf和scanf的使用技巧。第3章中的基本数据类型是编程最基础的知识,目的是尽快建立程序,正确使用数据和运算符。第4章中的控制语句是编程的基本功之一,其错误也是五花八门,必须十分小心。第5章关注数组与指针,开始接触构造类型的错误。第6章给出编写函数的典型错误。第7章分析自定义宏时最容易出现的错误。第8章除了分析使用库函数的典型错误之外,增加了printf的功能,目的是使读者充分利用printf函数。第9章主要是结构的基本使用方法。第10章通过实例分析联合与枚举的正确使用方法。为了适应实际编程,第11章增加了利用状态机编程的基础知识。

第二篇是C语言编程中的好与坏,这里“坏”的含义是指编程质量差的程序。本篇继续运用第一篇分析对与错的方法,但主要是针对能运行而编程质量不好的程序,寻找质量“好”的替代质量“差”的,从而提高实用编程能力。

第二篇共14章,包括第12章至第25章。第12章介绍编译系统的差别,主要目的是利用编译系统预报尽可能多的错误。第13章结合实例介绍调试与测试程序的各种典型方法,包括自定义宏、使用系统提供的调试函数、编写自己的调试函数和利用条件编译等技术。第14章介绍大端存储和小端存储的概念及变量的存储地址分配,通过对比分析,介绍如何更好地使用各种基本变量、常量和指针。第15章重点是正确定义带参数的宏及宏函数。第16章重点是如何设计可靠、正确的控制语句,如何正确选择运算符、优先级和求值顺序。第17章除分析位运算容易用错之处外,还给出使用位运算的典型例子。第18章重点是如何用好数组与指针。第19章是如何更好地编写函数,包括解读函数声明的方法。第20章重点介绍可变参数的函数的设计方法及printf函数、scanf函数和sscanf函数的原型。第21章是如何在不同场合下正确地使用结构,并讨论优先使用结构指针传递参数的原因。第22章是预防使用文件的常见错误。第23章结合实例讨论多文件编程错误、单文件结构、一个源文件和一个头文件的结构以及多文件结构。第24章介绍调试版本和发布版本的区别。第25章列举7个方面的问题,介绍编程优化的典型思路和方法。

本书涉及的内容深浅均有,其中不乏编程高手也会产生混淆的内容,各类人群都能在其中找到满足自己需要的知识并有一定收获。本书不仅对社会读者极有参考价值,还能帮助在校生进行课程设计训练,完成毕业实习或毕业论文。本书既可以作为手册随时查阅,又可以作为自学或培训班的教材。

因为本书不是教材,所以多个作者分别撰写各章的不同小节,然后逐章讨论并独立成章。刘燕君主要负责第1~8章和第19~25章,刘振安负责第9~18章,最后由刘振安统稿。为本书编写工作提供帮助的还有周淞梅实验师、苏仕华副教授、鲍运律教授、刘大路博士、唐军高级工程师等。

在编写过程中,本书得到中国科学院院士、中国技术大学陈国良教授的大力支持,特此表示感谢!刘燕君老师在中国台湾的两年博士后期间,得到了张真诚教授和黄明祥教授的大力支持和帮助,特此感谢。对被引用资料的作者及网络作品的作者表示衷心感谢!

为了学习方便,本书提供全部程序代码,可从华章网站(www.hzbook.com)下载或通过电子邮件联系编者索取:[email protected]。

编者

2014年7月