
1.3 C语言是优秀的程序语言
早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了20世纪80年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。
1.C语言的优点
(1)语言简洁,使用方便灵活
C语言是现有程序设计语言中规模最小的语言之一,而小的语言体系往往能设计出较好的程序。C语言的关键字很少,ANSI C标准一共只有37个关键字(详见附录C)、9种控制语句,压缩了一切不必要的成分。C语言的书写形式比较自由,表达方法简洁,使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。
(2)可移植性好
C语言抽象了针对CPU编程的细节,能广泛应用于针对大型操作系统和系统软件的编写。C语言是通过编译来得到可执行代码的,统计资料表明,不同机器上的C语言编译程序80%的代码是公共的,C语言的编译程序便于移植,从而使在一种单片机上使用的C语言程序,可以不加修改或稍加修改即可方便地移植到另一种结构类型的单片机上去。这大大增强了使用各种单片机进行产品开发的能力。
(3)数据结构类型丰富,表达能力强
C语言具有丰富的数据结构类型,可以根据需要采用整型、实型、字符型、数组类型、指针类型、结构类型、共用体类型、枚举类型等多种数据类型来实现各种复杂数据结构的运算。C语言还具有多种运算符,灵活使用各种运算符可以实现其他高级语言难以实现的运算。
(4)运算符多,表达方式灵活
C语言提供了34种运算符,并把括号、赋值、逗号、强制类型转换等都作为运算符处理,可以组成各种表达式,还可采用多种方法来获得表达式的值,从而使用户在程序设计中具有更大的灵活性,大大提高编程效率。C语言的语法规则不太严格,程序设计的自由度比较大,程序的书写格式自由灵活。程序主要用小写字母来编写,而小写字母是比较容易阅读的。这些充分体现了C语言灵活、方便和实用的特点。
(5)可进行结构化程序设计
C语言是以函数作为程序设计的基本单位的,C语言程序中的函数相当于汇编语言中的子程序。C语言对于输入和输出的处理也是通过函数调用来实现的。各种C语言编译器都会提供一个函数库,其中包含有许多标准函数,如各种数学函数、标准输入/输出函数等。此外C语言还具有自定义函数的功能,用户可以根据自己的需要编制满足某种特殊需要的自定义函数。实际上C语言程序就是由许多个函数组成的,一个函数即相当于一个程序模块,因此C语言可以很容易地进行结构化程序设计。
(6)可以直接操作计算机硬件
C语言可以像汇编语言一样对位、字节和地址进行操作,可以直接访问片内或片外存储器,允许直接访问物理地址对硬件进行操作,把高级语言的基本结构和语句与低级语言的实用性结合起来。
(7)生成的目标代码质量高
众所周知,汇编语言程序目标代码的效率是很高的,这就是为什么汇编语言仍是编写计算机系统软件的重要工具的原因。但是统计表明,对于同一个问题,用C语言编写的程序生成代码的效率仅比用汇编语言编写的程序低10%~20%。
(8)具备强大的绘图功能
借助各种图形图像库,C语言和C++一样也可以写出很优雅的二维、三维图形、图像和动画,也能实现类似Windows操作系统样式的窗口式系统程序与各类应用程序。
2.C语言的不足
尽管C语言具有很多的优点,但和其他任何一种程序设计语言一样也有其自身的缺点,如不能自动检查数组的边界,各种运算符的优先级别太多,某些运算符具有多种用途,较其他高级语言C语言在学习上要困难一些等。
但总的来说,C语言的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手,尤其是单片机应用系统的程序设计人员更是如此。
3.C语言的应用领域
1)应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。
2)对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,如网络程序的底层和网络服务器端底层、地图查询等。
3)系统软件和图形处理。C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。
4)数字计算。相对于其他编程语言,C语言是数字计算能力超强的高级语言。
5)嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。
6)游戏软件开发。游戏大家更不陌生,很多人就是由于玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,如推箱子、贪吃蛇等。