C++确实是在C语言的基础上演变而来的,但为什么C++没有完全代替C语言有以下几个原因:
向后兼容性:C++保留了C语言的大部分语法和特性,使得现有的C代码可以在C++中进行编译和运行,这种向后兼容性使得C语言仍然广泛应用于许多项目和系统中。
学习曲线:C++相对于C语言来说,语法和特性更加复杂和庞大,学习和掌握C++需要更多的时间和精力。对于一些简单的项目或初学者来说,使用C语言更加容易上手。
运行效率:C语言是一种较为底层的语言,对于一些对性能要求较高的系统或嵌入式开发来说,C语言的运行效率可能更高。
生态系统和库支持:C语言有丰富的开发工具和库支持,已经形成了庞大的生态系统。许多项目和系统依赖于这些C语言的库,迁移到C++需要重写和重新适配这些库,对于一些项目来说可能不切实际。
尽管C++在面向对象编程、模板编程等方面提供了更多的特性和功能,但C语言仍然具有自己的优势和应用领域。因此,C语言和C++在不同的场景和需求下仍然共存和发展。
为何C++没有替代C语言?
C++确实是在C语言的基础上演变而来。确切说,是在原始的C,即K&R C的基础上演变而来的。和现代的C99,C11,C18之间是分支关系。
要明确一点:C++并非C语言的继承者。
从C语言演变出许多其它语言,关系很近的除了C++,还有Objective C(就是苹果大力使用的那种语言)。其它的如D,Go等语言也深受C的影响。
需要说明的是:即使C语言需要继承者,C++并非唯一候选人。
C++是在OOP理念流行时,针对C不能原生支持OOP的问题而推出的改良品种,刚开始只是一套预处理标准,后来则发展成了另一种语言。
C++并不孤单,Objective C几乎与其同时诞生(80年代初期)。
由于性能优势(相对于Objective C),C++在竞争中压倒了Objective C,流行了起来。
C语言是为操作系统级底层开发而设计的。在实践中,C语言在这一领域长期处于统治地位。
相对于C++,C语言不包含那些针对大型应用级程序所增加的复杂性,这也带来了一些优势,比如:
其实C语言从来就不是功能特别多的一种语言。比C语言更古老的ALGOL系列语言功能和语法特性都远超C语言。C语言本身就是精简功能的产物。是做减法、而不是做加法的产物。
如果有一种语言能完全替代C,那这种语言一定要在C语言的主场,即操作系统级底层开发领域超越C语言。这种语言一定是减法做得好的语言。C++不是这种语言,至于哪种语言能达成此目标?且让我们拭目以待吧。
十倍速时代,与对手竞争,对语言要求是编程快,适合团队,摩尔定律下硬件越来越便宜。与用户需求做平衡。
c++语言是面向对象语言,是大规模团队需求,编译出目标代码效率高,与C语言兼容,但语言复杂。C语言与硬件关系近有有移殖性好得特点,很多手持和其它嵌入式设备内存处理器资源小 ,c语言在这些场合更有效率。现在嵌入设备处理器和内存强大,例如手机,用Java多,JAVA更容易,团队协作效率更高,c++也地位下降。
linux操作系统是用c语言编,c语言生命力保持另一大原因。
后来得语言,例如python调用c语言包,来平衡易用性与效率。
C语言在嵌入式挑战是树莓派python。
以用户为导向,根据需要选择语言。
与有多因素关得,同样用c语言,同功能设备,内存是256看k,另一帮人用8兆,因为前者敢投片专用集成电路,另一帮人直接用汇编语言用2兆内存。
还有市场决策和技术决策,用数据库软件比直接用c语言编,虽然较贵,投入市场快且系统稳定。
很多是对技术掌握程度,例如微软vb不稳定效率低,结果编出工业监控软件比用c编得另一家稳定。
C++发展历史简单介绍
C语言之所以要起名为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子名字的第一个字母是B; 当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,所以就叫C++,也成立了C++标准委员会;
美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C++(最初这种语言被称作“C with Classes”)。一开始C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 1488-1998。C++是具有国际标准的编程语言,通常称作ANSI/ISO C++。1998年是C++标准委员会成立的第一年,以后每5年视实际需要更新一次标准,下一次标准更新将是在2009年,目前我们一般称该标准C++0x。遗憾的是,由于C++语言过于复杂,以及他经历了长年的演变,直到现在(2009年)只有Visual C++ 2010 CTP开发环境的编译器完全符合这个标准。
另外,就目前学习C++而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C++。根据《C++编程思想》(Thinking in C++)一书所评述的,C++与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C++ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)。
你好,我是比特币二师兄。
1、首先,大学肯定教的都是大众性,即普遍程度很高的东西,C语言相对C++而言,就比较普遍,因为大家基本上都会一些C语言相关的基础。
2、大学只是给你打了一个基础,为了让你在进入社会公司之后,有一个逻辑上的思维,好进行培训,以及打磨,适合本公司的研发方向的人才。
3、C++是面向对象思维的,一般而言,初学者学习时,对于面向对象而言还是比较难理解的,因此大部分学校都会教C语言,而不是C++。
4、C++语言来说,相对复杂一些,类的继承,封装、多态等都是比较复杂的概念,这些对初学者来说并不友好。
5、相较于C++语言而言,C语言具有更强的灵活性,更快的运行速度,并且适用于底层编程,比如嵌入式开发等等。像Linux系统,基本上都是纯C语言开发完成的。
对于编程功底强大的人,C语言就是其首选的编程语言。
页面更新:2024-03-05
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号