学C++_第0章 引言/指南_0.3 C/C++简介

本文回顾了C和C++的起源与发展历程,强调了C++作为面向对象语言的特点,以及它在电子游戏、实时系统和高性能金融应用等领域的优势。文章还对比了C与C++的设计哲学,指出C++赋予程序员更大的自由度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梅冠华-2019-04-19
翻译自C++学习网站 learncpp(www.learncpp.com) 第0章 第3节
https://www.learncpp.com/cpp-tutorial/introduction-to-cplusplus/

0.3 C/C++简介

在C++之前,有个C

1972年,Dennis Ritchie在Bell电话实验室开发出了C语言,最初是作为系统编程语言(用来写操作系统的语言)。Ritchie最初的目标是搞出一种极度简单的语言,即,非常容易地编译,允许高效地使用内存,生产出高效的代码,而且能自给自足(不依赖于其他程序)。对于高级语言来讲,其是设计用来给程序员很多控制权限,同时还能保证平台(硬件和操作系统)的独立性(即,代码不需要对每个平台重新编写)。

C变得是如此高效和灵活,以至于在1973年,Ritchie和Ken Thompson用C重写了绝大多数的UNIX操作系统。之前的许多操作系统是用汇编语言写的,而汇编所产出的程序只能在特定的CPU上运行,与此不同,C有着优越的可移植性,允许UNIX容易地在不同类型的计算机上重新编译,这加快了其应用。C和Unix的命运紧紧联系在了一起,而C的流行也与UNIX操作系统的成功紧密关联。

1978年,Brian Kernighan和Dennis Ritchie出版了一本书,名为“C编程语言”。这本书,更广为人知的名字是K&R(作者的首字母),提供了关于该语言的一种非正式解释,它变成了事实标准。当需要大量的可移植性时,程序员将遵守K&R的建议,因为那时候的众多编译器都在执行K&R标准。

1983年,美国国家标准协会(American National Standards Institute(ANSI))成立了一个委员会,来确立关于C的正式标准。1989年(委员会花了很长时间来做这件事),他们完成了标准制定,发布了C89标准,更广泛的叫法是ANSI C。1990年国际标准化组织(International Organization for Standardization (ISO))采纳了ANSI C(作了了些许修改)。该版本的C即C90。编译器最终变成了ANSI C/C90兼容型,而且期望最大可移植性的程序都用该标准来编写代码。

1999年,ANSI委员会发布了C的新版本,称为C99。C99吸收了很多特性,这些特性作为扩展包已经被编译器所采纳,换言之,它们被添加进了C++。

C++

C++(“++”念“加加”,C plus plus常写成cpp)是由Bjarne Stroustrup在贝尔实验室作为C的扩展包自1979年起开发的。C++添加了许多新特性到C语言中,或许将其认为为C的扩展集会更好点,尽管严格来说这并不正确(比如C99引入的新特性就不存在于C++中)。C++之所以声名显赫,是因为它本质上是面向对象的语言(object-oriented language)。至于什么是对象,其和经典的编程方法有何不同,好吧,我们将在第8章(基础的面向对象编程)讲到它们。

C++于1998年被ISO委员会所批准,2003年再次批准(成为C++03)。C++语言的三大更新(C++11、C++14、C++17,分别于2011、2014和2017年批准)从那时开始便不断向语言中添加扩展函数。尤其是C++11给该语言添加了海量的新能力。这些更新所带来的相关特性将在该教程中展开探讨。该语言的未来更新也在积极开展中。

C和C++的哲学

C和C++潜在的设计哲学可以总结为“相信程序员”——这既精妙绝伦又危机四伏。C++设计成允许程序员有很大的自由度去做他们任何想做的事情。然而,这同时也意味着该语言一般不会让你停止正在进行的毫无意义的事情,因为它假定你这么做是出于某些原因的,其可能对此毫不知晓。有相当多的陷阱是编程菜鸟(小白、新手)在有意无意下非常容易陷进去的,这也就是为什么 知道你不应该用C/C++来做什么 和 知道你应该拿它做什么 是同等重要的。

Q:C++擅长做什么?
C++擅长于那些需要高效和精确控制内存和其他资源的场合。这里给出了一些常见类型的应用,它们最有可能是C++编写的:

  • 电子游戏
  • 实时系统(如,运输、制造等)
  • 高性能金融应用(如,高频交易)
  • 图形应用与仿真
  • 生产/办公应用
  • 嵌入式软件
  • 音频和视频处理

Q:在我开始该教程之前,我需要知道C么?
不用啊!其实从C++开始就非常好,而且我们将一路教会你所有你需要知道的东西(包括避免那些陷阱)。
一旦你知道了C++,再去学标准的C是非常简单的,如果你需要的话。目前,C大多用于niche(不知道该咋翻译这个了@-@)应用的场合:代码运行在嵌入式设备上,当你需要与其他一些只能与C等相交互的语言打交道时…对于大多数场合,C++是推荐的。

梅冠华-2019-04-19
翻译自C++学习网站 learncpp(www.learncpp.com) 第0章 第3节
https://www.learncpp.com/cpp-tutorial/introduction-to-cplusplus/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值