编程语言应用

首页 » 常识 » 常识 » C语言和CC的区别在什么地方
TUhjnbcbe - 2023/4/15 17:52:00
白癜风是怎样引起的 http://pf.39.net/bdfyy/bdfzg/181001/6559327.html

按时间顺序说一说这三门语言的基本吧,这样比较一下儿就能知道他们的区别了。如果你是一个有志向的程序员,那么你可能会很难决定先学哪门编程语言。世界上有相当多的编程语言,但是在C、C++和C#中哪一个是最有用的呢?

你可能也曾听闻过C语言的这三个变种(variation)。在你做出选择之前,需要先了解一下它们的区别。

一、C语言

C语言诞生得非常早,当时人们普遍还习惯用汇编语言编写软件,而且没有什么统一,通用的操作系统,基本上软件都是从0开始写的。C语言的目标就是比汇编方便易用,同时不要损失汇编的表达能力。所以C语言可以看成是“高级的汇编”语言。C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点,简单容易编译,灵活贴近底层。所以一直到现在,一些需要直接和硬件打交道的软件都还是用C语言写的,比如(但不限于)LinuxKernel和一些嵌入式领域。

二、C++语言

C++早期是基于C的,C++早期的编译方法是将C++的代码编译成C代码然后再调用C的编译器来生成机器码。C++的目标是提高编程人员的生产率,哪怕代价是增加编译器的复杂度。面向对象只是C++的一部分,现代的C++的目标是支持多种编程范型,同时并不会离硬件太远。所以C++是非常适合写一些基础架构及软件的,比如编译器,GUI库等等。

三、C#以及.net框架

Java的成功已经变成了铁一样的事实。背后的思潮就是managedcode的崛起,与之对应的就是C/C++这种nativecode的衰落。当计算机的性能越来越好,但是好的码农却越来越少,然而对代码的需求却越来越高的时候,业界的选择只剩下一个:运行性能换开发效率,降低从新手到一般可接受水平的曲线

主要的区别

虽然C和C++有许多的不同但是它们本质上是非常相似的编程语言。C#的话,换句话说它和Java会更相似,C语言是不支持面向对象的,这也是它和C++的最大的区别。C是纯过程式(procedural)编程语言,而C++是既支持过程式又支持面向对象的混合编程语言。

以下是C和C++的其他不同点:

C++作为C的扩展,意味着它可以运行大部分C代码。但是反过来,C去运行C++的代码,就不行了。作为一种面向对象的语言,C++支持多态(polymorphism)、封装(encapsulation)和继承(inheritance),但是C不支持。

C使用函数来实现输入和输出,而C++使用对象来实现输入和输出。C++支持引用变量(referencevariable),而C不支持。引用变量是已存在变量的别名,可用于加速编码。C不支持错误和异常处理,但是C++支持。

在C中,数据和函数是“自由的实体”(freeentities),这意味着你可以使用外部代码来操作它们。但是由于C++将数据和函数封装到一个单一的对象,就等同于对外部代码隐藏了,所以外部代码无法操作其数据和函数。

C++使用名称空间(namespace)将代码组织为逻辑组并阻止了名称冲突(collision)。当你的代码基(codebase)包含了多个库的时候会发生名称冲突。C不使用名称空间。

C#的特点就是:抽象层次高且基本只有一种(面向对象的),运行时支持丰富(垃圾回收等),类库丰富。所以它就是好学,易用,同时兼顾运行效率,尽量优化。说起这个,并不是说越高级的语言就越慢,运行时性能跟很多东西有关。

C就像一台引擎裸露在外,轮子变速箱刹车传动轴承都要自己装的“车”,如果你是DIY狂人喜欢自己造车,你会喜欢C的。

C++就像有人说的DIY狂人造出来的一台马力十足的跑车,包含了C的全部优点外加一个外壳。开起来是疯狂的野兽马力十足,但是不是谁都能驾驭了,稍有不慎就会车毁人亡

C#就像一台综合性能非常好的轿跑,自动超速箱ABS防抱死空调音响一应俱全。

总而言之就是语言在设计上就是为了解决不同问题而出现的,而不是想证明一种观点,作者会朝着更加优化和简便的方向去设计开发,这种最原本的设计动机,也是最根本的区别,后者往往会保留前者的优势,再衍生出新语言的优势和缺陷。

1
查看完整版本: C语言和CC的区别在什么地方