问题的提法不准确
准确来说,C不是面向过程的语言而是结构化语言。由于早期的PASCAL语言是以“过程”来定义程序功能单元的,因此结构化语言经常被误解为面向过程的语言。面向过程的语言是以FORTRAN为代表的一类语言。
首先,我们讨论一下面向过程,结构化和面向对象三种语言的特征。
面向过程的语言是以过程处理为导向对处理过程进行排序,数据流贯穿于处理过程。其特点是根据时间流或处理顺序对程序进行编制。典型代表是BASIC,FORTRAN,主要应用于有限元,数值积分等科学计算程序的编制。现存的面向过程的语言极为罕见。
结构化语言是将程序的处理机能进行分类并分别对其进行封装。同时,对数据按其归属进行分类、封装。最后,根据问题的逻辑机构关系对各封装块进行拼装。结构化语言的基本特征是以功能处理模块和数据结构模块为基本单元进行程序构建。其典型代表为C。
面向对象的语言是在结构化语言的基础上根据对象将结构化的功能和数据按其对象的归属进行分类后将其结构化并进行封装。面向对象可以被理解为较结构化更加深入的结构化。面向对象的语言是从C++开始的。
经过对三类语言的分析,我们不难看出,C和C++实际上是一种语言的两个阶段,C是婴幼儿,C++则是成熟后的C。