学C/C++不能不知道的硬知识
十月份發(fā)布的全球編程語言排行榜
Java高居榜首,C屈居第二,C++緊隨其后,C和C++的比例之和,超過Java5%,python借人工智能和DevOps的東風(fēng),扶搖直上,新秀GO語言,投胎技術(shù)好,有個好爹,依托容器技術(shù)和K8S,迅速走紅
本文不是為C/C++站臺,宣傳其為全宇宙最好的語言,而以近二十年的從業(yè)經(jīng)驗(yàn)來分析C/C++的優(yōu)劣勢,提出指導(dǎo)性建議
?
這些是C/C++能做的
?
C語言以過程式編程,比匯編更貼近人類思考方式,而迅速興起,在性能上貼近于機(jī)器語言
在開發(fā)效率和執(zhí)行性能上做了一個平衡
在系統(tǒng)控制上,給開發(fā)人員更多的自由,這是他的優(yōu)點(diǎn),也是缺點(diǎn)。對于資深人員來說,有很大的發(fā)揮空間,但對于新手來說,就是踩不完的坑,學(xué)習(xí)成本極高,稍不小心就是內(nèi)存泄漏,死鎖
因此,C語言主要應(yīng)用場景在操作系統(tǒng),如Linux;底層組件,如ceph;這些標(biāo)準(zhǔn)化程度高,性能要求苛刻的場景
?
學(xué)習(xí)從來不是一個人的事情,要有個相互監(jiān)督的伙伴,工作需要學(xué)習(xí)C/C++或者為了入行、轉(zhuǎn)行學(xué)習(xí)C/C++的伙伴可以私信回復(fù)小編“學(xué)習(xí)”領(lǐng)取全套免費(fèi)C/C++學(xué)習(xí)資料、視頻
C++在C基礎(chǔ)上,引入對象模型,將數(shù)據(jù)和方法有機(jī)的綁定在一起,比C語言更一步貼近人類思維模式
引入模板編程,替換C中宏這樣的語法糖
早期C編寫的程序中,內(nèi)聯(lián)函數(shù)和宏滿天飛,現(xiàn)在變成模板滿天飛,在執(zhí)行效率上不相上下,但在調(diào)試期,倒引入不少麻煩,實(shí)際上違反了接口和實(shí)現(xiàn)分離的原則
C++在開發(fā)效率上要高于C,執(zhí)行效率上略遜于C,因此在開發(fā)周期要求比較嚴(yán)格,性能要求高的場景,有他的發(fā)揮空間,比如游戲的端游,比如行情軟件
在客戶端,有C#和C++競爭,在服務(wù)端,有JAVA、python、go與C++競爭,所以C++的市場份額就比較尷尬
?
C/C++由于底層綁定比較緊,所以在跨平臺這塊存在很高的難度,特別是大規(guī)模的軟件系統(tǒng),要考慮的可能性更多
在boost逐漸發(fā)展壯大后,這些情況會逐漸好轉(zhuǎn)。boost為了跨平臺,不得不犧牲一些平臺特性,在性能上也會有一定損失,因此在一些應(yīng)用場景中,還會存在定制自己API庫的場景存在,相較于之前沒有boost時代,依然要好很多
C/C++因?yàn)槠渥杂啥雀?#xff0c;百花齊放,即使是同一個功能,也能整出個N多花樣,開發(fā)人員需要在選擇困難癥中,痛并快樂著。這些狀況,會隨著標(biāo)準(zhǔn)化程度不斷提高,而減少,但永遠(yuǎn)不會消失
總結(jié)
以上是生活随笔為你收集整理的学C/C++不能不知道的硬知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++基础语法,赶紧收藏好哟~
- 下一篇: [云炬商业计划书阅读分享]袜子广告策划方