您的位置:首页 > 编程语言 > C语言/C++

(2)'c++:COMPLETE REFERENCE' 第一部分 第一章(c语言概述) 第一节

2007-01-17 18:16 483 查看
      想要深入了了解c++,我们首先需要了解c++诞生的原因,c++规范所遵循的理念,以及它继承了什么样的特性。因此,我们介绍c++之前,首先要介绍c语言。本章将讲述c语言的起源、使用、潜在的哲学理念。c++是在c语言基础上创造的,因此本章为介绍c++的起源提供了重要的历史回顾。是什么让c++真正成为c++?这是由c语言源起的。

c语言的起源和发展历史
      c语言是由Dennis Richie创造并首次使用在Unix操作系统上。它是由早期的BCPL语言一步步演化而来的。BCPL语言由Martin Richards发明。后来Ken Thompson受到BCPL语言的启发创造了B语言。最终导致了19世纪七十年代c语言被发明。很多年以来,c语言的实际标准是由Unix操作系统定义的版本。关于c语言标准的描述最早出现在Brian Kernighan与Dennis Richie合著的'The C Programming Language'一书中。1983年,一个委员会被专门建立,用来制定c语言的ANSI(美国国家标准协会)标准。该标准的制定用了6年时间(远比当时任何正常的预计都长的多)。最终,c语言的ANSI标准于1989年12月出台并从1990年初开始有效。该标准也被ISO(国际标准化组织)所采用,通常被人们称之为c语言ANSI/ISO标准。1995年该标准的第一次修正版发布,增加了若干库函数。1989年c语言标准又一次被更新,并且成为了c++标准制定时参考的基础文档,用来定义c++的c语言子集。1989年制定的c语言标准通常被人们称之为C89。

      1989年后,c++成为舞台的主角。整个90年代,大部分程序员都把热情投入到c++标准的制定上,并于1998年正式发布了c++标准。然而,那些关于c语言的工作并没有停止,而是在默默进行。1999年,目前最新的c语言标准诞生了,它通常被人们称之为C99。总的来说,C99没有对c语言做多大改动,基本和C89类似。C99标准化委员会主要把焦点放在两个领域:增加若干的数学函数以及一些特殊的应用,其中有些明显的革新,比如变长数组和定义受限指针的关键字。有时候,不过很少,C99定义的一些新特性来自于c++。例如,单行风格的程序注释就被写入了C99标准。因为c++标准的完成是在C99标准出台以前,因此,C99中的有些革新并没有出现在c++标准之中。

C89 vs. C99

      尽管C99中的一些技术革新站在计算机科学的角度来看是非常重要的,但是在当时并没有多大的实践意义。因为在本书写作的时候,还没有任何主流编译器支持C99标准,而程序员所认可的c语言仍然是遵循C89标准的那个版本,并且该版本被主流编译器所支持。另外,c++标准中的c语言子集也是参考C89制定的。尽管C99标准中定义的一些c语言的新特性可能会在将来的c++标准中出现,但是它们和目前的c++标准并不兼容。

      因为C89标准是c++中的c语言子集定义的基准,并且目前大部分的c语言程序员更加熟悉C89标准,所以本书的第一部分关于C语言的描述将会采用C89作为标准。当我们提到‘c语言’的时候,希望大家知道,我们说的是C89标准的c语言。不过,C99相对于C89而改进或者增加的一些重要特性,有些与c++有关,这在本书中也会有介绍。比如,C99增加了一个新特性用来提高与c++的兼容性。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐