1.3 C語言的發展與特點
1.3.1 C語言的發展概況
C語言作為編程語言,具有功能強大、語句表達簡練、控制和數據結構豐富、程序時空開銷小的特點。既具有高級語言的特點,又具有低級語言中的位、地址、寄存器等概念,擁有其他高級語言所沒有的低層操作能力;既適于開發系統軟件,又可用來編寫應用軟件。C語言的特點與其發展過程密不可分。
C語言的出現是與UNIX操作系統緊密聯系在一起的,C語言本身也有一個發展過程,目前仍然處于發展和完善之中。從歷史發展來看,C語言起源于1968年發表的CPL(Combined Programming Language),它的許多思想來自于Martin Richards在1969年研制的BCPL以及以BCPL為基礎的由Ken Thompson在1970年研制成的B語言。Ken Thompson用B語言寫出了第一個UNIX操作系統。D.M.Ritche于1972年在B語言的基礎上研制了C語言,并用C語言寫成了第一個在PDP-11計算機上實現的UNIX操作系統。1997年出現了獨立于計算機的C語言編譯文本——“可移植C語言編譯程序”,從而大大簡化了把C語言編譯程序移植到新環境所需要做的工作,這就使得UNIX操作系統迅速在眾多計算機上得以實現。隨著UNIX操作系統的廣泛使用,C語言也得到迅速推廣。
1983年美國國家標準學會(ANSI)根據C語言問世以來的各種版本,對C語言的發展和擴充制定了新的標準,稱為ANSI C。1987年ANSI又公布了新標準——87 ANSI C。目前使用的如Microsoft C、Turbo C等多種版本,都把ANSI C作為一個子集,并在此基礎上做了合乎它們各自特點的擴充。
1.3.2 C語言的特點
無論是哪種版本的C語言,都具有一些共同的特點,歸納如下:
(1)C語言是一種結構化語言
C語言的主要成分是函數。函數是C語言程序的基本結構模塊,程序的許多操作可由不同功能的函數有機組裝而成,容易實現結構化程序設計中模塊的要求。另外,C語言還提供了一套完整的控制語句(如分支、循環等)和構造數據類型機制(如結構、數組、指針等),使得程序流程與數據描述也具有良好的結構性。
(2)C語言語句簡潔緊湊,使用方便靈活
C語言一共只有32個保留字和9種控制語句,程序書寫形式自由。例如,用花括號{}代替復合語句的開始和結束,用運算符++和--表示加1和減1操作,一行可以書寫多個語句,一個語句可以寫在不同行上,宏定義和文件包含,等等,這些都使得C語言顯得非常簡潔緊湊。
(3)C語言程序易于移植
C語言將與硬件有關的因素從語言主體中分離出來,通過庫函數或其他實用程序來實現。特別體現在輸入/輸出操作上,因為C語言不把輸入/輸出作為語句的一部分,而是作為庫函數由具體的實用程序來實現,從而大大提高了程序的可移植性。
(4)C語言有強大的處理能力
由于C語言引入了結構、指針、地址、位操作、寄存器等功能,在許多方面具有匯編語言的特點,從而大大提高了語言的處理能力。
(5)C語言生成的目標代碼的質量高,程序運行效率高
用C語言編寫的程序,經編譯連接后生成的可執行程序比用匯編語言直接編寫的代碼運行效率僅低15%~20%。這是其他高級語言無法比擬的。
當然,C語言也有一些不足之處,主要表現在數據類型檢查不嚴格,表達式出現二義性、不能自動檢查數組越界,初學者比較難掌握運算符的優先級與結合性等概念。
- 深入淺出數據科學:Python編程
- Python科學計算(第2版)
- GraphQL學習指南
- Julia Cookbook
- C++對象模型詳解
- Python深度學習:基于TensorFlow
- Frank Kane's Taming Big Data with Apache Spark and Python
- GameMaker Essentials
- 精通MySQL 8(視頻教學版)
- Bootstrap for Rails
- C++程序設計
- ASP.NET Web API Security Essentials
- Ext JS 4 Plugin and Extension Development
- WordPress Search Engine Optimization(Second Edition)
- C/C++代碼調試的藝術(第2版)