- C語言程序設計
- 姚嵩
- 2260字
- 2021-01-18 11:06:18
1.3 C語言簡介
C語言是貝爾實驗室Dennis Ritchie 在1973年設計的一種程序設計語言,其目的是用于寫操作系統和系統程序,初期用在PDP-11計算機上寫UNIX 操作系統。20世紀70年代后作為UNIX的標準開發語言,C語言隨著UNIX 系統流行而得到越來越廣泛的接受和應用。20世紀80年代后,它被搬到包括大型機、工作站等許多系統上,逐漸成為開發系統程序和復雜軟件的一種通用語言。隨著計算機的蓬勃發展、處理能力的提高和應用的日益廣泛,越來越多的人參與了計算機應用系統的開發工作,這就需要適合開發系統軟件和應用軟件的語言。C語言能較好地滿足人們的需要,因此在計算機軟件開發中得到了廣泛的應用,逐漸成為最常用的系統開發語言之一,被人們用于開發微型機上的各種程序,甚至是非常復雜的軟件系統。
在使用最多的以Intel 及其兼容芯片為基礎的計算機上,也有許多性能良好的C語言系統可用。包括Borland 公司早期的Turbo C和后續Borland C/C++系列產品,Microsoft(微軟)公司的Microsoft C和后續Visual C/C++系列產品,還有其他的C/C++語言系統產品,使用較廣的有Watcom C/C++和SymantiC/C++等,此外還有許多廉價的和免費的C語言系統。其他計算機也有多種C語言系統。各種工作站系統大都采用UNIX 和Linux, C語言是它們的標準系統開發語言。各種大型計算機上也有自己的C語言系統。
1.3.1 C語言的特點
C語言之所以能被世界計算機界廣泛接受是由于其自身的特點。總體上說,其設計把直到20世紀70年代人們對于程序語言的認識和開發復雜系統程序(例如操作系統等)的需要成功地結合起來。C語言的主要特點包括以下幾點。
C語言比較簡單,是一個比較小的語言。學習時入門相對容易,知道很少東西就可以開始編程。C語言很好地總結了其他語言提出的程序庫概念,把程序設計中許多需要的功能放在程序庫(稱為標準函數庫)里實現,如輸入/輸出功能等,這就使語言本身比較簡單,編譯程序的實現比較容易。人們早已用C語言寫了它自己的編譯程序,這種程序很容易移植到各種不同的計算機上,促進了C語言的發展。
C語言提供了豐富的程序機制,包括各種控制機制和數據定義機制,能滿足構造復雜程序時的各種需要。方便易用的函數定義和使用機制使人可以把復雜的程序分解成一個個具有一定獨立性的函數,以分解程序的復雜性,使之更容易控制和把握。
C語言提供了一套預處理命令,支持程序或軟件系統的分塊開發。利用這些機制,一個軟件系統可以較方便地先由幾個人或幾個小組分別開發,然后再集成,構成最終的系統。這種工作方式對于開發大軟件系統是必須的,人們用C語言開發了許多規模很大的系統。
C語言的另一特點是可以寫出效率很高的程序。人們之所以在一些地方繼續使用匯編語言,就是因為高級語言寫出的程序效率低一些。這樣,開發效率要求特別高的程序時就只能使用匯編語言。C語言的基本設計使得用它開發的程序具有較高的效率,它還提供了一組比較接近硬件的低級操作,可用于寫較低級、需要直接與硬件打交道的程序或程序部分。這些特點使C語言常被當做匯編語言的“替代物”,從而大大提高了開發低層程序的效率。
C語言的設計得到世界計算機界的廣泛贊許。一方面,C語言在程序語言研究領域具有一定價值,它引出了不少后繼語言,還有許多新語言從C語言中汲取營養,吸收了它不少的精華。另一方面,C語言對計算機工業和應用的發展也起了很重要的推動作用。正是由于這些貢獻,C語言的設計者獲得世界計算機科學技術界的最高獎——圖靈獎。
1.3.2 C語言的發展和標準化
在設計C語言時,設計者主要把它作為匯編語言的替代品,作為寫操作系統的工具,因此更多強調的是其靈活性和方便性,語言的規定很不嚴格,可以用許多不規則的方式寫程序,因此也留下了許多不安全因素。使用這樣的語言,就要求編程序者自己注意可能的問題,程序的正確性主要靠人來保證,語言的處理系統(編譯程序)不能提供多少幫助。隨著應用范圍的擴大,使用C語言的人越來越多(顯然其中大部分人對語言的理解遠不如設計者), C語言在這方面的缺陷日益突出。由此造成的后果是,人們用C語言開發的復雜程序里常帶有隱藏很深的錯誤,難以發現和改正。
隨著C語言應用的發展,人們更強烈地希望C語言能成為一種更安全可靠、不依賴于具體計算機和操作系統(如UNIX)的標準程序設計語言。美國國家標準局(ANSI)在20世紀80年代建立了專門的小組研究C語言標準化問題,這項工作的結果是1988年頒布的ANSI C標準。這個標準被國際標準化組織和各國標準化機構所接受,同樣也被采納為中國國家標準。此后人們繼續工作,于1999年通過了ISO/IEC 9899:1999標準(一般稱為C99)。這一新標準對ANSI C做了一些小修訂和擴充。
語言改造非常困難。雖然人們已經認識到原來C語言中的一些不足之處。但一方面已有的東西,主要是新標準出現前人們已開發的各種程序和軟件是一筆巨大財富,不能輕易丟掉,徹底改造要耗費極大的人力和物力,也不可能做到;另外,一批老用戶已養成習慣,不可能在一朝一夕改變。因此,即使想建立一個新標準,也要盡可能保持與原形式的兼容性,作為對現實的退讓,ANSI C標準基本上容許原形式的C程序同步。但新標準中強調:舊事物終將被拋棄,希望寫程序的人盡量不要再使用它們。
今天學習C語言和程序設計,理所當然應該采用新的形式,不應該學習那些過時的東西。原因主要有兩條:① 這些舊東西終歸將被拋棄,養成使用它們的習慣后將來還要改,那時將更加費時費力,也毫無意義;② 這些過時的東西確實不好,雖然有時用它們能少寫幾個字符,但往往會阻礙編譯系統對程序的檢查。人很容易犯錯誤,在從事寫程序這種復雜工作時尤其如此。阻止編譯檢查就是拒絕計算機幫助,其實際后果無法預料,可能代價慘重并且為程序中實際存在的隱藏錯誤耗費更多的時間和精力。
- Git高手之路
- INSTANT MinGW Starter
- OpenNI Cookbook
- Blockly創意趣味編程
- Apache Mesos Essentials
- Python數據分析從0到1
- 可解釋機器學習:模型、方法與實踐
- Unreal Engine 4 Shaders and Effects Cookbook
- Web Development with MongoDB and Node(Third Edition)
- 基于SpringBoot實現:Java分布式中間件開發入門與實戰
- Learning Splunk Web Framework
- 寫給大家看的Midjourney設計書
- Mastering PowerCLI
- Monitoring Docker
- 計算機程序的構造和解釋(JavaScript版)