我的一个朋友决定学习一些低级语言(以增加他的能力)所以他在想C.或者也许是C ++?!
他不知道要么学习C还是完全使用C ++。
他告诉我他们用了什么,不能告诉他(自从我上次使用C或C ++以来已经有一段时间了)。
所以,我的问题,试图帮助我的朋友,他们最擅长什么,C和C ++?。
什么时候需要C ++?何时C足够?
P.S。我不是想开始一场战争或争吵。我不希望语法解释像C不做模板或没有类来更好地考虑OOP等。我只是想知道每个最强的要点是什么作为适用性,功能解决方案
答案 0 :(得分:2)
在很高的层次上,你无法在C ++中做任何你在C中无法做到的事情。两种语言之间的主要区别在于它们的工作抽象层次。
C是一种中级系统编程语言,旨在成为机器底层硬件上的薄型可移植层。它的设计很小,因此语言可以很容易地从一台机器移植到另一台机器,但具有表现力,因此您可以在其上构建复杂的系统。 C擅长嵌入式环境,或者资源限制极端的区域,您需要自己手动管理所有细节(例如,OS内核,嵌入式设备等)
用它的创建者的话来说,C ++是“一种偏向于系统编程的通用编程语言1”是一种更好的C,2)支持数据抽象,3)支持面向对象的编程,4)支持通用编程。“它演变为一种编程语言,其运行时性能可与C相媲美,但更高级的语言功能更适合构建大型复杂系统。这种语言要复杂得多,但表达性更强,并且更自然地映射到您对编程问题的思考方式。虽然你可以获得原始C的性能,但是为了简化编程,C ++中的程序通常会在运行时效率上做出很小的牺牲。我想不出单个应用程序,其中C将严格地优于C ++,反之亦然。 C ++程序是在火星车,互联网路由器,视频游戏等等.C程序是Linux和Windows的强大功能。实际上并没有一个明显的赢家。也就是说,我个人更喜欢C ++。我认为用C ++编码设计要容易得多,因为语言更丰富,你可以更准确地理解你的意思。
任何一种语言都是一个很好的起点。如果您想快速起床和编码,请学习C.学习C ++,如果你想投入更多的时间,但想要建立更大的系统。
答案 1 :(得分:1)
C:
支持更多奇怪的内置自定义微控制器。
C ++:
OOP,大量预建库(提升)。
转到C ++!
答案 2 :(得分:1)
如果目标只是学习,请选择C.这是一种非常小的语言,你可以用它做很多事情。您可以查看许多开源项目,以获取良好代码的示例。
非常适合制作需要部署为机器代码或语言中立库的东西。
一旦你使用了很多C语言,你就会明白为什么要发明C ++以及如何使用它。
答案 3 :(得分:0)
即使你开始学习C ++的目标,你也需要学习很多C来完成你的C ++学习。
如果目标是学习较低级别的语言,那么C ++被认为是比C级更高的水平。可能会变低,因为这是目标的一部分。如果你真的想要降低成绩(但不是英特尔组装,那只是在没有任何好处的情况下造成痛苦)。 RISC或MIPS样式的程序集是一个不错的选择,但非英特尔倾斜可能会减少朋友可用的硬件。