不知道大家有没有在高中生物学里经常看到一个题目,有关于基因遗传的:一胎生九子,九子各不同。简单来解释也就是:同一物种不同世代个体之间,或同代不同个体之间的性状差异。那今天说的编程语言C姓中也是这样。那他们会有什么不同呢?
C:
尽管这些都是不同的语言,但是C仍然是所有语言的祖父。C是由丹尼斯·里奇(Dennis Ritchie)主要在AT&T的贝尔实验室设计的。C旨在代替Unix的解释语言B。这段历史使C几乎成为便携式汇编程序,并带来一些便利和简化。
C的设计归结为假设程序员对自己的工作有扎实的观念。但是C在其标准库中几乎没有提供高级数据结构或算法。C还以在低级别弱类型系统中处理内存的能力而闻名。这意味着C代码更容易受到漏洞和bug的影响,但可以使其闪电般地快速处理计算机的低级方面。
如今,当您需要在不同语言之间编写胶合代码或扩展高级语言时,会需要经常使用到C。您还将发现大多数操作系统内核部分或全部用C编写。最后,由于C与大多数现代语言相比占用空间小,因此在嵌入式系统中仍然很常见。
C ++:
别被这个名字愚弄了,C ++不是C。C++最初是由Bjarne Stroustrup创建的,它是C的扩展,但实际上是一个真正的超集。C ++的早期版本是伪造面向对象设计的预处理程序,但是最终成为了自己的语言。
C ++与C的设计大相径庭。但是它在其标准库中为您提供了一些数据结构和算法的实现。如果标准库还不能满足您的需求,则将为您提供工具以至少十二种不同的样式进行滚动。最后,C ++具有更强大的类型系统。除非存在转换,否则您不能再将一种类型转换为另一种类型,这种差异导致许多有效的C程序无法在C ++下编译。
当需要性能时,经常使用C ++,但是会花费太多时间来编写。这包括性能问题所在的专业软件套件,3D游戏和用户应用程序。C ++通常不用于OS内核或嵌入式系统中,因为该语言有些功能的问题。您的操作系统不能仅仅因为C ++决定引发异常而停止!但是,对于性能敏感的用户应用程序,C ++是不错的选择。
C#:
当Microsoft看到Java的成功时,C#出现了。由于Java可以在任何地方运行,因此他们决定使用Microsoft生态系统专有的类似语言。只是到了现在,C#现在可通过Mono或.NET Core在大多数平台上使用。
C#借鉴了Java的设计理念。C#是一种高度面向对象的语言,带有丰富的标准库。这大部分都摆脱了C和C ++功能,例如手动内存管理和低级访问。C#具有强大的类型系统以及垃圾收集功能,以摆脱未使用的内存。
如前所述,C#主要用于Windows生态系统。由于其庞大的标准库和便利性,因此可以在需要交付软件并愿意为此牺牲性能和低级控制的情况下使用它。C#在使用ASP.NET进行Web开发方面也很突出。
好了,大概的就介绍到这啦。谢谢大家的观看。
领取专属 10元无门槛券
私享最新 技术干货