1. 程式人生 > >C語言主要做哪些方面的開發---一個來自“IT技術學習”微信群的問題及答覆

C語言主要做哪些方面的開發---一個來自“IT技術學習”微信群的問題及答覆

最近,在“IT技術學習”微信群中,有同學問了這樣一個問題:C語言主要做哪些方面的開發?在這篇文章中,我想結合自身的經驗,對這個問題進行下解答。
C語言是計算機及其相關專業(如通訊、電子、數學等)學生大一時的必修課程,也是很多人所學的第一門程式語言。要想了解C語言主要做的開發工作有哪些,我們先來簡單回顧下C語言的產生歷程。
美國的貝爾實驗室在IT領域佔有非常重要的地位,從這裡面走出來的發明創造不計其數,C語言就是其中之一。話說在1970年,貝爾實驗室的一個名叫 Ken Thompson的研究員設計出了一種很接近硬體的程式語言,取名B語言,並用該語言寫出了世界上第一個UNIX作業系統。注意,B語言的特點是接近硬體。一年之後,另一位叫做Dennis M.Ritchie的研究員看到UNIX這玩意兒很有前途,便加入了Thompson的開發專案。然而,Ritchie並不是一位只會用B語言程式設計的“碼農”,他對B語言進行了改進,並於1972年設計出了C語言,他也因此被譽為“C語言之父”。
C語言被髮明出來之後,Ritchie和Thompson用之對UNIX進行了重寫。直到現在,雖然C語言經過了多次標準的制定和修改,但基礎都是Ritchie所設計的最初的那版C語言。而C語言是對B語言的改進,那麼自然而然地繼承了B語言的“基因”:接近硬體。
那麼,這種“接近硬體”的程式語言可以做哪些方面的開發呢?由於任何軟體都要執行在特定的硬體之上,我傾向於將當前的系統表示為如下圖所示的四個層次。
這裡寫圖片描述


對於軟體開發工程師來說,關注更多的是上面的三個層次:作業系統層、中間層和使用者層。
(1)作業系統層:包括Windows、Linux、iOS、Android等。它們的主要實現語言都是C語言,這和C語言“接近硬體”的特性是有關的。
(2)中間層:該層在作業系統層和使用者層之間充當了一個橋樑的作用,它將很多對於作業系統的操作封裝成了API,供上層(使用者層)呼叫。既然作業系統幾乎都是用C語言實現的,那麼如果要使用其中的某些功能,C語言就是最佳的實現語言。因此,在中間層的開發中,C語言也是主流的語言。
(3)使用者層:該層是直接與使用者進行訊息互動的層次,也是使用者能夠直接感受到的層次,如WEB介面、客戶端軟體操作介面等。目前看來,該層的主流程式語言是Java,這也與Java自身的特點有關。
現在來總結一下,C語言可以用於作業系統的開發或與作業系統很靠近的中間層的開發。具體到的軟體種類就相當的多了,如本人之前開發過的支付業務介面和現在正在開發的通訊介面機。
任何一門語言的產生,都有其特定的背景,也有其具體適用的場合,因此,並沒有孰優孰劣之分,最主要看學習這門語言的人掌握到了什麼程度。在大家學習的過程中,我的建議是可以學習不同的幾門程式語言,但一定要有一到兩門比較熟練或精通。
最後,歡迎更多的對IT技術比較感興趣的朋友加入我們這個“IT技術學習
”微信群,也請大家關注本人即將要出版的新書《C程式設計師:從校園到職場》。

本人微信公眾號:zhouzxi,請掃描以下二維碼:
這裡寫圖片描述