0.3C与C++简介

C++诞生之前,已经有了C

C语言于1972年由贝尔实验室的Dennis Ritchie发明,起初是作为一种系统编程语言,也就是说是一种编写操作系统的语言,Richie希望它是一种简洁的语言,易于编译,允许高效的内存访问,产生高效的代码,而不需要大量的运行时支持。因此,作为一种相对高级的语言,C语言仍然有许多低级语言的特点,强调独立于特定平台的编程。

C语言最终成为了一种十分高效且灵活的编程语言。1973年,Ritchie和Ken Thompson用C语言改写了大部分UNIX系统的代码,而此前,它们是用汇编语言编写的。与汇编语言严重依赖于特定CPU不同,C语言具有很优秀的可移植性,因此UNIX系统可以在多种不同的计算机上编译通过,C和UNIX的命运紧紧绑在一起,C语言的流行也在一定程度上推动了UNIX系统的成功。

1978年,Brian Kernighan和Dennis Ritchie出版了《The C Programming Language》,这本书,也就是大家熟知的K&R,成为了C语言的非正式标准(其实也是事实上的标准)。如果对程序的可移植性要求很高,程序员就会严格遵守K&R标准,因为那个时候绝大多数编译器都是执行K&R标准的。

1983年,美国国家标准协会(ANSI)专门成立了一个委员会来制定C标准,并于1989年最终完成并发布了C89标准,也即ANSI C。1990国际标准化组织也采用了ANSI C(做了一些小的修改),这个版本的C被称为C90。之后的所有编译器都会遵从这两个标准,而希望获得最大可移植性的程序也都会按照这个标准编码。

1999年,ANSI委员会发布了新的C99标准,新增了许多编译器新支持的特性和一些C++就支持的语法。

C++

C++(从++就可以略知一二)是从1979年起由贝尔实验室的Bjarne Stroustrup作为C语言的拓展开发的。C++在C的基础上新增了许多新功能,可以认为是C语言的超集,尽管这在C99标准发布后就不太准确了,因为C99引入了一些C++也不支持的特性。C++的成名得益于它是一种面向对象的编程语言,至于什么是对象,它与传统编程方式有何不同,我们将在第八章讲到(面向对象编程基础)。

C++标准与1998年经ISO委员会批准通过,并于2003年通过了新版本(称为C++03),2011年和2014年又陆续做了两次更新(C++11和C++14),这些更新也会在教程中讨论。

C与C++的哲学

C与C++的基本设计理念可以概括为“对程序员的绝对信任(trust the programmer”-这是很美妙的,如果你想做标新立异但有意义的事情编译器绝不会阻挠你,但同时也是危险的,如果你做了可能造成无法预知后果的事情,编译器同样也不会警告你。这就是为什么在C/C++中,知道哪些是禁止做的和哪些是应该做的同样重要,因为确实有很多陷进,新手程序员很可能在无意识的情况下陷进去。

请注意,在学习本教程之前,你不需要学过C,我们会在过程中告诉你需要知道的一切,包括应当避免的陷阱。

发表评论

电子邮件地址不会被公开。