C語言:一種高效、易學的程式語言

一品威客01發表於2021-02-04

  C語言是一種通用的程式設計語言。它同UNIX系統之間具有非常密切的關係。C語言是在UNIX系統上開發的,且無論是UNIX系統本身還是其上執行的大部分程式,都是C語言編寫的。但是C語言並不受限於任何一種作業系統或機器。由於C語言使用用來編寫編譯器和作業系統,因此被稱為“系統程式語言”。

  C語言的很多重要概念來源於BCPL語言,BCPL對C語言的影響間接地來自於B語言。BCPL和B語言都是“無型別”的語言,而C語言提供了很多資料型別,其基本型別包括:字元、具有多種長度的整型和浮點數,以及通過指標、陣列、列舉、結構和聯合派生的各種資料型別。表示式由運算子和運算元組成。任何一個表示式,包括賦值表示式或函式呼叫表示式,都可以是一個語句。指標提供了與具體機器無關的地址算術運算。

  Basic Combined Programming Language(BCPL)是一種早期的高階語言。1967年由劍橋大學的Matin Richards在同樣由劍橋大學開發的CPL語言上改進而來。BCPL最早被用做牛津大學的OS6作業系統上面的開發工具。1970年,貝爾實驗室的Ken Thompson在BCPL的基礎上改進出了B語言,用於書寫UNIX。這個名字取自BCPL中的第一個字母。B語言使用的時間更短,因為三年後的1973年同樣是貝爾實驗室的D.M.RITCHIE將B語言進一步改進,並且取了BCPL中的第二個字母將其命名為C語言。

  C語言為實現結構良好的程式提供了基本的控制流結構:語句組、條件判斷(if-else)、分支選擇(switch)、迴圈(while、for)、提前跳出迴圈(break)等。

  函式可以返回基本型別、結構、聯合或指標型的值。任何函式都可以遞迴呼叫。區域性變數通常是“自動的”,即在每次函式呼叫時重新建立。一個C語言程式的不同函式可以出現在多個單獨編譯的不同原始檔中。變數可以只在函式內部有效,也可以在函式外部但僅在一個原始檔中有效,還可以在整個程式中都有效。

  C語言可以處理大部分計算機能夠處理的物件,比如字元、數字和地址。這些物件可以通過具體機器實現的算術運算子和邏輯運算子組合在一起並移動。

  C語言不提供直接處理諸如字串、集合、列表或陣列等複合物件的操作。雖然可以將整個結構作為一個單元進行拷貝,但C語言並沒有處理整個陣列或字串的操作。除了由函式的區域性變數提供的靜態定義和堆疊外,C語言沒有定義任何儲存器分配工具,也不提供堆和無用記憶體回收工具。另外,C語言本身沒有提供輸入/輸出功能,沒有READ或WRITE語句,也沒有內建的檔案訪問方法。所有這些高層的機制必須由顯示呼叫的函式提供。

  類似的,C語言只提供簡單的單執行緒控制流,即測試、迴圈、分支和子程式,它不提供多道程式設計、並行操作、同步和協同例程。

  儘管缺少某些特性看起來好像是一個嚴重不足(這意味必須通過呼叫函式來實現),但把語言保持在一個適度的規模會有很多益處,可以用比較小的篇幅將它描述出來,這樣也很容易學會。儘管如此。對於大量的程式設計應用來說,C語言是一種公認的非常高效的、表示能力很強的語言。

相關文章