再過兩年,C語言將迎來它的 50 歲生日,同樣進(jìn)行周年慶的還有 PL/M和Prolog。不過,C語言至今仍然非常受歡迎,它在幾乎所有編程語言中的受歡迎程度,始終排在前十名。

大多數(shù)操作系統(tǒng)的內(nèi)核(包括 Windows,MAC,Linux,IOS 和 Android 等)都主要由使用C語言實現(xiàn)。此外,python 的 C Python 解釋器,perl,ruby,差不多一半的 R 語言,以及 mysql 的 MysAm 代碼,甚至 java 的第一個編譯器都是使用C語言編寫的。

C語言和C++打了個平手
C++ 在 C語言的領(lǐng)域中取得一些進(jìn)展,特別是自從 C++11 中增加了移動語義,如果能夠正確使用該語法,在處理指向大對象的指針時,C++能以更小的開銷,帶來更好的性能,并且C++也能夠在傳統(tǒng)的嵌入式C語言領(lǐng)域使用。

C語言和C++打了個平手
但是,C++程序代碼編譯后通常還是會比C語言的大一點,因為C++增加了異常處理,以及內(nèi)聯(lián)模板等C語言沒有的機制。例如在 Visual C++的 release 模式編譯下面這段C++代碼:
最終得到的 exe 可執(zhí)行文件的大小達(dá)到 10752 字節(jié)。再來編譯相同功能的 C語言代碼:
得到的 exe 可執(zhí)行文件大小為 9216 字節(jié),只有 C++ 程序的 85%。這里的差別還不是特別大,但是可以肯定的是,使用C++編程時,一旦加入了其他類,它與C語言程序大小的差異會越來越大。

代碼大小非常重要,因為物聯(lián)網(wǎng)(IOT)設(shè)備的數(shù)量越來越多,微控制器的使用也越來越多,要知道這些微控制器的 RAM 和 ROM 通常都是千字節(jié)級別的。所以在嵌入式領(lǐng)域,C語言在2005年至2018年期間獲得的市場份額實際上是有所提升的。
C語言是編程界的通用語言
就像現(xiàn)實生活中,英語是世界是的通用語言一樣,C語言是編程語言界的通用語言。許多其他編程語言編譯器輸出的其實是 C 語言代碼,由C語言編譯器進(jìn)一步生成可執(zhí)行程序。這不難理解,因為C語言是最低級別的可移植語言。(唯一更低級別的匯編語言與 CPU 緊密相關(guān),不方便移植。)
Github 項目頁面上列出了大約 60 個開源編譯器,一小部分是 C++ 的,但是C語言占絕對的主導(dǎo)地位。

使用C語言提升效率
python 是如今最流行的編程語言之一,但是因為它是解釋型編程語言,同時也受它的動態(tài)變量的影響,所以 python 程序的運行效率一直是一個痛點。使用過 python 進(jìn)行大數(shù)據(jù)處理的朋友應(yīng)該知道 numpy、scipy 等庫可以提升效率,而 numpy 庫就是由 C語言實現(xiàn)的。python 的標(biāo)準(zhǔn)實現(xiàn)是 C Python,它的主要庫也是由 C語言(少許C++)實現(xiàn)的。
C語言是“九陽神功”
C語言可能不是每個編程初學(xué)者想學(xué)的第一編程語言,但是作為第二、第三編程語言,C語言一直很流行。我把它看做編程界的“九陽神功”,學(xué)會C語言后,再學(xué)其他編程語言都如有神助。

小結(jié)
至少在底層硬件設(shè)備驅(qū)動層,C語言還未逢對手。另外在操作系統(tǒng)內(nèi)核開發(fā)中,C語言也幾乎是唯一選擇,特別是在 Linux 上,C語言還將存在很長一段時間。超過一半活躍的 Web、 服務(wù)器運行的是 Apache 和 nginx,它們都是C語言編寫的,如今已經(jīng)存在近 50 年了。
自學(xué)C/C++不易,此路應(yīng)攜手前行。
如果你想跟著小編一起學(xué)編程的話!
可以來我專欄介紹的C語言/C++編程學(xué)習(xí)基地,【點擊進(jìn)入】!
還有(源碼,零基礎(chǔ)教程,項目實戰(zhàn)教學(xué)視頻)【進(jìn)入領(lǐng)取】!? ?

