附言我不是要挑起 war 或争论。我不想要语法解释,比如 C 不做模板或没有类可以更好地在 OOP 中思考等。我只想知道每个人的强项是什么,如适用性、功能解决方案
最佳答案
在一个非常高的层次上,没有什么是你在 C++ 中可以做的,而你在 C 中已经做不到的。这两种语言之间的主要区别在于它们工作的抽象级别。
C 是一种中级系统编程语言,旨在成为机器底层硬件之上的薄、可移植层。它被设计得很小,这样语言就可以很容易地从一台机器移植到另一台机器,但又富有表现力,这样您就可以在它之上构建复杂的系统。 C 在嵌入式环境或资源限制如此极端以至于您需要自己手动管理所有细节(例如,操作系统内核、嵌入式设备等)的领域表现出色
用其创建者的话来说,C++ 是“一种偏向于系统编程的通用编程语言,它 1) 是更好的 C,2) 支持数据抽象,3) 支持面向对象编程,4)支持泛型编程。”它发展成为一种编程语言,其运行时性能可与 C 相媲美,但具有更适合构建大型复杂系统的高级语言功能。该语言明显更复杂,但表现力更强,并且更自然地映射到您思考编程问题的方式。虽然您可以获得原始 C 的性能,但 C++ 中的程序通常会为了简化编程而牺牲运行时效率。
我想不出在哪个应用程序中 C 严格优于 C++,反之亦然。 C++ 程序用于火星探测器、互联网路由器、视频游戏等。C 程序是 Linux 和 Windows 的强大动力。确实没有明显的赢家。也就是说,我个人更喜欢 C++。我认为用 C++ 对设计进行编码要容易得多,因为这种语言更丰富,而且您可以更准确地表达自己的意思。