c 語言
c 語言
自從1972年誕生,C語言迅速成為世界上最流行、使用最廣泛的高級程序設計語言,並且延續至今,幾乎任何計算機操作系統和計算機硬體架構和機型都有可用的C語言編程工具集。
C語言是目前世界上最流行、使用最廣泛的高級程序設計語言。
在典型性使用場景,例如操作系統、系統程序以及需要對硬體進行直接操作等,用C語言編程明顯優於其它高級語言。許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,數值計算。
主流的C語言編譯軟體有:
● GNU gcc
● clang
● Microsoft Visual C++
C語言的發展頗為有趣。它的原型ALGOL 60語言,(也成為A語言)。
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,美國貝爾實驗室的Dennis M. Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M. Ritchie 發表了不依賴於具體機器系統的C語言編譯論文《可移植的C語言編譯程序》。
1978年Brian W. Kernighian和Dennis M. Ritchie出版了經典名著《The C Programming Language》。
伴隨Unix的成功,C語言逐步成為世界上流行最廣泛的高級程序設計語言,並在最流行編程語言的榜首延續至今。
1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準,成為C語言標準, 俗稱C89。之後,ISO組織接手了C語言標準的修訂和升級,先後發布了正式的C語言新標準,C99, C11, C17。
C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些彙編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字, 9種控制語句。程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象彙編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的範圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種複雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比彙編程序生成的目標代碼效率低10へ20%。
8. C語言適用範圍大,可移植性好
C語言有一個突出的優點就是適合於幾乎任何操作系統, 如Windows、Linux、MacOS等,也適用於各種計算機架構和機型。
當然,C語言也有自身的不足,比如:C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數族下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
總之,C語言既有高級語言的特點,又具有彙編語言的特點;既是一個成功的系統設計語言,又是應用軟體程序設計語言;既能用來編寫不依賴計算機硬體的應用程序,又能用來編寫各種系統程序。
Hello World
輸出一組自然數,從100倒數到0