C语言程序设计
上QQ阅读APP看书,第一时间看更新

1.3 C语言的发展与特点

1.3.1 C语言的发展概况

C语言作为编程语言,具有功能强大、语句表达简练、控制和数据结构丰富、程序时空开销小的特点。既具有高级语言的特点,又具有低级语言中的位、地址、寄存器等概念,拥有其他高级语言所没有的低层操作能力;既适于开发系统软件,又可用来编写应用软件。C语言的特点与其发展过程密不可分。

C语言的出现是与UNIX操作系统紧密联系在一起的,C语言本身也有一个发展过程,目前仍然处于发展和完善之中。从历史发展来看,C语言起源于1968年发表的CPL(Combined Programming Language),它的许多思想来自于Martin Richards在1969年研制的BCPL以及以BCPL为基础的由Ken Thompson在1970年研制成的B语言。Ken Thompson用B语言写出了第一个UNIX操作系统。D.M.Ritche于1972年在B语言的基础上研制了C语言,并用C语言写成了第一个在PDP-11计算机上实现的UNIX操作系统。1997年出现了独立于计算机的C语言编译文本——“可移植C语言编译程序”,从而大大简化了把C语言编译程序移植到新环境所需要做的工作,这就使得UNIX操作系统迅速在众多计算机上得以实现。随着UNIX操作系统的广泛使用,C语言也得到迅速推广。

1983年美国国家标准学会(ANSI)根据C语言问世以来的各种版本,对C语言的发展和扩充制定了新的标准,称为ANSI C。1987年ANSI又公布了新标准——87 ANSI C。目前使用的如Microsoft C、Turbo C等多种版本,都把ANSI C作为一个子集,并在此基础上做了合乎它们各自特点的扩充。

1.3.2 C语言的特点

无论是哪种版本的C语言,都具有一些共同的特点,归纳如下:

(1)C语言是一种结构化语言

C语言的主要成分是函数。函数是C语言程序的基本结构模块,程序的许多操作可由不同功能的函数有机组装而成,容易实现结构化程序设计中模块的要求。另外,C语言还提供了一套完整的控制语句(如分支、循环等)和构造数据类型机制(如结构、数组、指针等),使得程序流程与数据描述也具有良好的结构性。

(2)C语言语句简洁紧凑,使用方便灵活

C语言一共只有32个保留字和9种控制语句,程序书写形式自由。例如,用花括号{}代替复合语句的开始和结束,用运算符++和--表示加1和减1操作,一行可以书写多个语句,一个语句可以写在不同行上,宏定义和文件包含,等等,这些都使得C语言显得非常简洁紧凑。

(3)C语言程序易于移植

C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序来实现。特别体现在输入/输出操作上,因为C语言不把输入/输出作为语句的一部分,而是作为库函数由具体的实用程序来实现,从而大大提高了程序的可移植性。

(4)C语言有强大的处理能力

由于C语言引入了结构、指针、地址、位操作、寄存器等功能,在许多方面具有汇编语言的特点,从而大大提高了语言的处理能力。

(5)C语言生成的目标代码的质量高,程序运行效率高

用C语言编写的程序,经编译连接后生成的可执行程序比用汇编语言直接编写的代码运行效率仅低15%~20%。这是其他高级语言无法比拟的。

当然,C语言也有一些不足之处,主要表现在数据类型检查不严格,表达式出现二义性、不能自动检查数组越界,初学者比较难掌握运算符的优先级与结合性等概念。