星空体育官网每个时刻段,总有分歧编程叙话当先其它叙话,前些年平昔是C和Java当先,而近来几年,则是Python和C++。
遵循最新颁布的2024年6月 TIOBE 编程指数来看,C++史乘上初度超越C,从第三上升至第二名,排名仅次于Python。
正在C++出生之初,便被誉为更好的面向对象的C版本,早正在昨年就有次第员称,“C++即将超越C”,但直至今日,也便是C++出生后39年后才真正打败了C超越。因为C叙话低重更为告急,反而导致了C++超越C叙话,首度登上TIOBE排行榜排名第二的身分。
C++闭键益处正在于其本能和可扩展性。从2011年起,C++开启了再造,每三年颁发一次强大更新。只管大大批编译器和大大批工程师都无法跟上这一程序,但看到叙话的兴盛被以为是一种得胜。
不表,C++也存正在欠缺,它的品格特点充足,因为史乘很久,C++的方向平昔是向后兼容。仅举几个界限的例子,C++正在嵌入式编造、游戏开辟和金融营业软件中洪量行使。
要说C和C++有什么区别,不妨有人说便是“有对象”(面向对象)和“没对象”(面向经过)的区别。
从C++98到C++17到C++23再到C++26,C++有大的打倒,也有为来日构造的主旨叙话特征。
C++圭臬听命3年开辟周期,并以颁发年份定名。正在临颁发的一年前,C++会进入“效用冻结期”(feature freeze),即版本开辟进入半稳固形态,不再增增强大效用及特征,着重于修复各类BUG超越。
大略回想一下C++圭臬的历程,个中C++98、C++11、C++20属于对照有打倒性的圭臬:
C++03:获得了一项轻微的技能修改,Technical Report 1(简称TR1)推出,是由C++圭臬化委员会成员筑筑的boost项目,正在社区中,席卷C++98正在内的C++03被称为古代C++;
C++11:被称为新颖C++,很多特征从根蒂上改良了C++的编程格式。如,C++11引入了TR1组件,另有挪动语义、完好转发、可变模板或constexpr等特征。行使C++11,还得到了内存模子行动底子的线程模子以及线圭臬底子上的查漏补缺,引入了读写锁、泛化的lambdas和泛化的 constexpr函数;
C++17:有两个出色的特征:并行的STL和圭臬化的文献编造。约莫80个STL算法可行使奉行计谋奉行。boost对C++17也形成了强大的影响,从boost中得到了文献编造以及3种新的数据类型:std::optional、std::variant和std::any;
C++20:这一代刷新水平不亚于C++11,席卷四个紧急特征:Ranges(限度库),Coroutines(协程)星空体育官方,Concepts(观点)以及 Modules(模块);
C++23:仍然杀青,并进入了最终投票阶段,C++23更像延续的一代。它供给了一种幼巧但影响深远的主旨叙话特征——this的推导,犹如于Python,正在成员函数界说中鲜明地传达隐式传达的this指针。同时,C++23库还将新增良多无趣味的特征。这个版本,开辟者褒贬纷歧,有人以为它比 Python差远了,有人则情愿给C++23一个机缘,现正在C++有了模块超越、观点等新特征,他开端思虑C++23是否值得用于新项目。
现正在,公共现正在都正在向C++20和C++23挨近,不表有57%的C++98/03用户不谋划迁移到其它C++圭臬。别的,值得一提的是,目前,仍然有37%的嵌入式开辟者和39%的游戏开辟者仍然开端行使C++20了。
本年C++23的行使率该当会有很大提拔,由于最新叙话颁发后一年行使率城市急速上升:C++17正在2017年以12%的行使率开端,2018年到达18%;C++20正在2020年以12%的行使率开端,2021年到达18%;C++23正在2023年以10%的行使率开端,本年希望膺惩16%的行使率。
正在嵌入式Linux界限,C++万分好用。就例如说,5千行代码的GuiLite便是由C++编写,而用C完成,起码须要几万行才力完成相仿的成绩。同时固然用函数指针可能完成C++的一齐特征,但会大大消重代码的可读性超越。可能说,正在嵌入式Linux界限,C++绝对是利用层主力之一。
而正在单片机界限,之于是C++不太时髦,是由于之前主流flash容量正在64KB~256KB足下,容量局限导致泛型编程和STL等很难利用正在开辟中,很光鲜C++更显得笨重。况且,也没有急切需求从C换成C++,究竟利用层更紧急的是生意,叙话特征太多反而容易让生意逻辑变得纷乱。
实际环境便是,C++自身难,但正在嵌入式利用或工业界中也没行使更加难的叙话特征星空体育官方,不表嵌入式人才原先就少,能用C++且不出幺蛾子的更少了。
正在工业界,C++大大批环境只行使STL封装的vector超越,map以及算法等轻易开辟,封装些模板函数或者类帮帮复用,而非挪动语义、模板偏特化、lambda, 、模板元编程等学问,或是各类语法组合出来的奇技淫巧。
总之,归结起来,也有此表一层起因,难度不是题目,需乞降薪水才是最闭键题目超越。星空体育官方C++史书上初度高出C超越