學C/C++不能不知道的硬知識

摘要

本文不是爲C/C++站臺,宣傳其爲全宇宙最好的語言,而以近二十年的從業經驗來分析C/C++的優劣勢,提出指導性建議。

7月份發佈的全球編程語言排行榜

Java高居榜首,C屈居第二,C++緊隨其後,C和C++的比例之和,超過Java5%,python借人工智能和DevOps的東風,扶搖直上,GO語言,投胎技術好,有個好爹,依託容器技術和K8S,迅速走紅。

這些是C/C++能做的

  1. 服務器開發工程師
  2. 人工智能
  3. 雲計算工程師
  4. 信息安全(黑客反黑客)
  5. 大數據
  6. 數據平臺
  7. 嵌入式工程師
  8. 流媒體服務器
  9. 數據控解
  10. 圖像處理
  11. 音頻視頻開發工程師
  12. 遊戲服務器
  13. 分佈式系統
  14. 遊戲輔助

C語言以過程式編程,比彙編更貼近人類思考方式,而迅速興起,在性能上貼近於機器語言

【文章福利】:小編推薦一個C語言/C++交流羣:967051845!整理了一些個人覺得比較好的學習書籍、視頻資料共享在羣文件裏面,有需要的可以自行添加~

在開發效率和執行性能上做了一個平衡

在系統控制上,給開發人員更多的自由,這是他的優點,也是缺點。對於資深人員來說,有很大的發揮空間,但對於新手來說,就是踩不完的坑,學習成本極高,稍不小心就是內存泄漏,死鎖

因此,C語言主要應用場景在操作系統,如Linux;底層組件,如ceph;這些標準化程度高,性能要求苛刻的場景

C++在C基礎上,引入對象模型,將數據和方法有機的綁定在一起,比C語言更一步貼近人類思維模式

引入模板編程,替換C中宏這樣的語法糖

早期C編寫的程序中,內聯函數和宏滿天飛,現在變成模板滿天飛,在執行效率上不相上下,但在調試期,倒引入不少麻煩,實際上違反了接口和實現分離的原則

C++在開發效率上要高於C,執行效率上略遜於C,因此在開發週期要求比較嚴格,性能要求高的場景,有他的發揮空間,比如遊戲的端遊,比如行情軟件

在客戶端,有C#和C++競爭,在服務端,有JAVA、python、go與C++競爭,所以C++的市場份額就比較尷尬

C/C++由於底層綁定比較緊,所以在跨平臺這塊存在很高的難度,特別是大規模的軟件系統,要考慮的可能性更多

在boost逐漸發展壯大後,這些情況會逐漸好轉。boost爲了跨平臺,不得不犧牲一些平臺特性,在性能上也會有一定損失,因此在一些應用場景中,還會存在定製自己API庫的場景存在,相較於之前沒有boost時代,依然要好很多

C/C++因爲其自由度高,百花齊放,即使是同一個功能,也能整出個N多花樣,開發人員需要在選擇困難症中,痛並快樂着。這些狀況,會隨着標準化程度不斷提高,而減少,但永遠不會消失

文章福利

對於自己找不到視頻、書籍資源的讀者,可以加小編的C語言/C++交流羣:967051845!整理了一些個人覺得比較好的學習書籍、視頻資料共享在羣文件裏面,有需要的可以自行添加哦!~

VS編譯器,圖形庫

C語言相關電子書

C/C++基礎視頻及筆記

C/C++項目實戰

日積月累,終有所成!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章