交易|你为什么选择C++而不是其他语言
文章图片
文章图片
所有编程语言都是为特定目的而设计的 。 例如 , BASIC是为刚入门的程序员和不想成为程序员但不得不偶尔编写一些自动化代码的人们而设计的 。 COBOL是为业务应用程序开发的 , 而FORTRAN是为数学应用程序开发的 , 而C基本上是为编写与平台无关的操作系统和应用程序而创建的 。 (可以针对任何类型的硬件进行编译的IE应用程序 。 )
1.竞争:
【交易|你为什么选择C++而不是其他语言】在1980年左右 , 随着Smalltalk-80的兴起 , 面向对象编程的概念开始流行 。 不久之后 , OOP成为了其他一些语言(包括C语言)的一部分 。 Apple创建了Objective-C语言 , 而Bjarne Stroustrup创建了C ++语言 。 从那时起 , 这两种Object-C变体一直在相互竞争 , 但是Objective-C在Apple平台之外从未流行 。
Borland创建了ObjectPascal并获得了相当成功 , 当时与各种C ++编译器竞争 。
微软创建C#可能需要更长的时间才能拥有自己的独立于平台的二进制版本 , 而其他平台上仍几乎不支持.NET 。 (但这也正在改变)
2.共同点与局限性:
但是 , 如果您看一下几乎所有编程的共同点 , 就是它们都在使用C和Assembly创建的操作系统上运行 。 C ++语言与Standard C关系最密切 , 大多数C ++编译器也能够编译Standard C , 甚至可以使用内联汇编 。 由于C ++具有与底层操作系统进行交互的最佳方法 , 因此它具有很多功能 。 (这与调用约定和数据格式有关 , 并且非常技术性 。 )
标准C ++库非常基础 , 如果您仅限于这些库 , 则必须先编写大量代码 , 然后才能使工作正常 。 当您要编写可为Linux , Windows和OS X编译的C ++应用程序时 , 就更具挑战性 , 因为所有这三个平台都使用不同的API , 例如 , 如果要创建窗口并显示标签 , 则需要调用这些API 。 但是 , 所有编程语言都存在此问题 , 尽管某些语言通过包含围绕底层操作系统API的特定库来解决此问题 。 但是这些包装程序通常意味着要执行更多的代码 , 因此事情可能会变慢 。
3.速度与强大:
C ++语言的优点是可以直接调用OS API , 并且不需要任何包装 。 这意味着您可以非常快速使用特定于平台的库 。 但是 , 如果您需要针对多个平台 , 那么您将需要一些通用库来包装各种OS API 。 Z只是 , 如果您只为一个特定平台编写应用程序 , 则可以通过调用OS API节省数十个时钟 。 在4 MHz系统上 , 这可以节省半秒的执行时间 。 但是现代计算机现在使用的是GigaHertz而不是MegaHertz , 因此速度增益几乎没有 。
因此 , 由于硬件速度更快 , C ++失去了速度优势 。 但是它仍然是一种非常强大的OOP语言 。
4.优点:
但是C ++的真正优点是它与Standard C的紧密关系 。 您可以在项目中轻松地将两者结合起来 。 最有趣的示例是当您使用OpenGL库生成3D图形应用程序时 , 因为OpenGL库是多个平台支持的标准 , 并且它们具有遵循C语法的API 。 因此 , 可以开发C ++库 , 为OpenGL函数组定义类 , 并且做到这一点非常快 , 这在使用图形时很重要 。 结合使用C和C ++将为您提供大量的原始能力 。
但是您可能想将类与OpenGL一起使用 , 尽管可以使用各种C ++库 , 但是它们都可以完成其他语言的工作 , 只是将C函数包装在类中 , 从而为这些函数的执行添加了更多代码功能 。 但是在C ++项目中调用原始OpenGL API将需要您编写更多代码 , 并对此API有更深入的了解 。
推荐阅读
- 家电消费网| 副总裁:500万用户选择了OPPO的IoT,OPPO发布智能电视
- 科技小乐乐|为什么国内有人已拿到iPhone12却不敢开机?
- |人类为什么一般只吃食草动物的肉,而不吃食肉动物的肉?
- 鸡蛋|为什么鸡看到鸡蛋被人类拿走了,却不会生气?
- 极客码头|你是选择盒装CPU还是散装CPU?,如果能够节省你装机的预算
- |地球物种繁多,为什么没有三栖动物,又进化出来的可能吗?
- |骨灰在自然界很多年以后会变为什么?有何科学依据?
- 淘宝|为什么大学生网购,更多的选择淘宝,而不是京东?原因很真实!
- IT观察|Z Fold 2半月的使用体验一、折叠屏手机的技术选择,变大或变小?二、Galaxy Z Fold 2基本使用体验三、Galaxy,iPhone 12发布了,我们来谈谈三星Galaxy
- 蟒蛇|巨蟒有天敌吗?为什么它们的数量如此稀少?