【发布时间】:2010-12-05 17:15:57
【问题描述】:
我的后辈们多次向我询问 C++ 广泛使用的领域。我通常回答操作系统。是否还有其他广泛使用的领域?
【问题讨论】:
-
元逻辑:您需要低级别访问和想要高级便利的任何地方。
标签: c++
我的后辈们多次向我询问 C++ 广泛使用的领域。我通常回答操作系统。是否还有其他广泛使用的领域?
【问题讨论】:
标签: c++
可以在Bjarne Stroustrup's homepage 找到用 C++ 编写的相当大且可能相当明确的软件列表。
【讨论】:
大多数防病毒软件都是用 C++ 编写的
【讨论】:
在遗留代码中...
甚至 Stroustrup 也承认 C++ 有很多错误,大部分是从 C 继承而来的。 这就是开发 C++0x 的原因。
【讨论】:
我已经看到 C++ 在 GUI 中被大量使用,因为面向对象的特性对于“小部件”来说有点自然。
我曾经看到它用于飞机的安全关键代码。这仍然让我做噩梦。
【讨论】:
C++ 和 C 在嵌入式系统中被大量使用,因为人们可以对内存和其他稀缺资源进行确定性控制。我认为大多数游戏(至少我玩的游戏)仍然是用 C++ 编写的,可能是因为存在用 C++ 编写的大型框架,这些框架已经过全面测试并且非常强大。
【讨论】:
考虑一下:从 MFC 的引入到 .NET 框架的引入,C++ 是 Windows 开发的首选语言。所以这应该告诉你一些事情。微软更喜欢它,也就是说,许多开发人员仍然更喜欢它而不是 .Net 语言。
C++ 是一种能够进行系统级编程的语言,而且由于提供了广泛的库,它也用于应用程序编程。我猜你的台式机上运行的几乎所有应用程序都是用 C++ 编写的。
如果您可以为任何东西获得一个库,那么您几乎肯定可以为 C++ 获得它。
广泛应用于游戏行业,并在一定程度上应用于嵌入式系统领域。
所以我会说 - '无处不在'。毕竟它是一种“通用”编程语言。
【讨论】:
操作系统中的 C++:据我所知,没有内核(真正完成所有令人讨厌的工作,如内存管理和驱动程序的核心部分)是用 C++ 编写的,只有 C。Linux 是用 C 编写的,Windows 也是如此。
请看这里: What Languages are Windows, Mac OS X and Linux written in?
如今的应用程序(构成操作系统的非内核部分)是用最适合这项工作的任何语言编写的。
如果以下内容对您很重要,您会选择 C++:
您可以使用 C 完成以上所有操作,平台之间的可移植性仍然是一个问题(C++ 与大多数 C 一样特定于平台)在 C 中,您必须更加严格地利用静态和动态分析工具。在 C 中泄漏内存也比在 C++ 中更容易。
【讨论】:
C++ 也大量用于实时金融市场数据软件。这里的延迟非常重要。 C++ 是不错的选择,因为它几乎是最接近金属的。
【讨论】:
- 已经用 c++ 编写了几个主要的操作系统
- 不妥协的低级效率对于 C++ 至关重要。这允许我们使用 C++ 编写设备驱动程序
- 许多数值、科学和工程计算都是在 C++ 中完成的。
- 图形和用户界面是大量使用 C++ 的领域。
- C++ 广泛用于教学和研究
- 游戏
【讨论】:
数值计算:物理、图形游戏、金融、统计;
比特摆弄:驱动程序、操作系统、网络、嵌入式设备;
任何需要精确控制内存分配的地方。
【讨论】:
mpz_do_crazy_stuff() 函数更容易使用和理解。
目前它用于游戏开发和性能关键应用程序。但是,有很多用 C++ 编写的旧东西,大多是在引入 Java 和 .NET 之前编写的,这些代码仍然需要维护。
【讨论】:
实际上我不会说操作系统。 Linux 和 Windows 内核主要是 C,只有用户态的东西是 C++(当然,驱动程序可以用任何东西编写)。我不确定 Mach (OS X),但如果它也主要是 C,我不会感到惊讶。
C++ 填补了“面向对象,但对于 80 年代末和 90 年代初的小型计算机来说足够快”这一美妙的缺口。因此,在 90 年代编写的任何东西都很有可能用 C++ 编写。应用程序、驱动程序、游戏等等。
今天,新的开发似乎主要使用托管 (JVM/.NET) 语言完成。并不是说没有任何新的 C++ 开发;尤其是游戏,在许多情况下,性能仍然有限,无法使用 C++。
简而言之:
【讨论】:
它用在你发现它解决你的问题效率的地方。编译器,编写驱动程序...
【讨论】: