跳至內容

C/C語言簡介

維基教科書,自由的教學讀本
< C

C語言於1972年誕生於貝爾實驗室,是一種面向過程的結構化程式語言。它以很高的實用性得到了廣大程式設計師的青睞,得以廣泛應用。許多著名的系統級軟件都是用C語言編寫的,如UNIX作業系統、GNU系統軟件套件Linux內核。用C語言加上一些匯編語言子程序,就更能顯示C語言的優勢了。C語言還可以用來實現另一種語言,如Python的官方解釋器CPython就是用C語言實現的。

C語言的特點

[編輯]

C語言最初是為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·湯普遜,以B語言為基礎,在貝爾實驗室設計、並開發出來的。它的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、只產生少量的機器碼以及不需要任何運行環境支持便能運行的程式語言。

C語言既有着高級語言的簡易方便,同時又像低級語言一樣有着較高的執行效率。C語言也保留了一些低級層面的功能,可以像匯編語言一樣對位、字節和地址進行操作, 這三者是計算機最基本的工作單元。在某一些方面C語言也可能會不如其它程序語言。例如專為解決數學計算問題而誕生的Fortran語言,C語言的計算效率就不如它,但比起Fortran,C語言的指針卻更靈活。或是Java,C語言的可移植性不像Java那樣好,因為Java有着獨特的運行方式(可參見維基百科的Java條目),但是正因為如此,相較於C語言,Java的執行效率卻打了折扣。總而言之,選擇C語言一般能給大多數人一個好的開始,可以滿足大部分的需求,為電腦程式設計打下很好的基礎。以下是一些關於C語言特點的較為詳細的介紹。

優點

[編輯]

執行效率高

[編輯]

C語言一般是首選的計算機作業系統生產語言。它一開始就是為了移植UNIX而被設計出來的,因而需要有着較高的執行效率。如果用匯編語言去開發程序,雖然能夠把執行效率提高,但對於特別大的程序,開發工作將會十分的費力。而使用C語言,則是一個很好的折中方式。

C語言也不是只能開發作業系統。正因為C語言較高的執行效率,用C語言開發出的程序與大多數其它語言開發出來的具有相同功能的程序相比,C語言開發的程序能夠運行得更快。

可移植性好

[編輯]

在大部分作業系統平台以及不同的計算機架構平台上,都能夠使用及開發C語言程序。例如Debian GNU/Linux作業系統就是為多種計算機架構提供的,而它的代碼多是用C語言所寫。

使用靈活

[編輯]

雖然C語言設計之初是為了系統編程,但沒有固定的約束將它限制在該範圍內。C語言可以用於編寫從嵌入式系統到商業數據處理的各種應用程式。此外,C語言在其特性使用上的限制非常少,以至於在其他語言中認定非法的操作在C語言中往往有可能是允許的。例如:C語言會允許一個字符與一個整數值相加。

歷史悠久

[編輯]

因為C語言已經存在了很久,並且使用廣泛,因此,您可以很容易的找到很多學習資料。

很多人或團體開發的程序都是以自由軟件或是開源軟件的形式發佈的,它們的開發者允許您不受限制地取得、學習、修改及再分發出去。如有名的網絡瀏覽器Firefox就是一個開放原始碼的自由軟件。

缺點

[編輯]

容易隱藏錯誤

[編輯]

正是C語言的靈活性使得程式設計師們使用它編程時出錯的機率可能會比其他語言更高。用其他語言編程時能夠發現的問題,在C語言中往往不會被編譯器檢查到。一個額外的分號可能會導致無限循環,遺漏的一個『&』可能會引發程序崩潰。

可能難以理解

[編輯]

C語言產生時的1973年正是人機交互時最單調乏味的時期,因此C語言設計者特意使得C語言簡潔明了以便將錄入和編輯程序的用時減到最少。「過於聰明」的程式設計師甚至可能會寫出除了他們自己幾乎無人能夠看懂的程序。