C/C++學習筆記——C提高:C語言概述

歡迎大家來到c語言的世界,c語言是一種強大的專業化的編程語言。

C語言的起源

貝爾實驗室的Dennis Ritchie在1972年開發了C,當時他正與ken Thompson一起設計UNIX操作系統,然而,C並不是完全由Ritchie構想出來的。它來自Thompson的B語言。

使用C語言的理由

在過去的幾十年中,c語言已成爲最流行和最重要的編程語言之一。它之所以得到發展,是因爲人們嘗試使用它後都喜歡它。過去很多年中,許多人從c語言轉而使用更強大的c++語言,但c有其自身的優勢,仍然是一種重要的語言,而且它還是學習c++的必經之路。

  • 高效性。c語言是一種高效的語言。c表現出通常只有彙編語言才具有的精細的控制能力(彙編語言是特定cpu設計所採用的一組內部制定的助記符。不同的cpu類型使用不同的彙編語言)。如果願意,您可以細調程序以獲得最大的速度或最大的內存使用率。
  • 可移植性。c語言是一種可移植的語言。意味着,在一個系統上編寫的c程序經過很少改動或不經過修改就可以在其他的系統上運行。
  • 強大的功能和靈活性。c強大而又靈活。比如強大靈活的UNIX操作系統便是用c編寫的。其他的語言(Perl、Python、BASIC、Pascal)的許多編譯器和解釋器也都是用c編寫的。結果是當你在一臺Unix機器上使用Python時,最終由一個c程序負責生成最後的可執行程序。

C語言標準

K&R C

起初,C語言沒有官方標準。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·裏奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。這本書被 C語言開發者們稱爲K&R,很多年來被當作 C語言的非正式的標準說明。人們稱這個版本的 C語言爲K&R C。
K&R C主要介紹了以下特色:結構體(struct)類型;長整數(long int)類型;無符號整數(unsigned int)類型;把運算符=+和=-改爲+=和-=。因爲=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。
即使在後來ANSI C標準被提出的許多年後,K&R C仍然是許多編譯器的最準要求,許多老舊的編譯器仍然運行K&R C的標準。

ANSI C/C89標準

1970到80年代,C語言被廣泛應用,從大型主機到小型微機,也衍生了C語言的很多不同版本。1983年,美國國家標準協會(ANSI)成立了一個委員會X3J11,來制定 C語言標準。
1989年,美國國家標準協會(ANSI)通過了C語言標準,被稱爲ANSI X3.159-1989 “Programming Language C”。因爲這個標準是1989年通過的,所以一般簡稱C89標準。有些人也簡稱ANSI C,因爲這個標準是美國國家標準協會(ANSI)發佈的。
1990年,國際標準化組織(ISO)和國際電工委員會(IEC)把C89標準定爲C語言的國際標準,命名爲ISO/IEC 9899:1990 - Programming languages – C[5] 。因爲此標準是在1990年發佈的,所以有些人把簡稱作C90標準。不過大多數人依然稱之爲C89標準,因爲此標準與ANSI C89標準完全等同。
1994年,國際標準化組織(ISO)和國際電工委員會(IEC)發佈了C89標準修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994[6] ,有些人簡稱爲C94標準。
1995年,國際標準化組織(ISO)和國際電工委員會(IEC)再次發佈了C89標準修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity[7] ,有些人簡稱爲C95標準。

C99標準

1999年1月,國際標準化組織(ISO)和國際電工委員會(IEC)發佈了C語言的新標準,名叫ISO/IEC 9899:1999 - Programming languages – C ,簡稱C99標準。這是C語言的第二個官方標準。
例如:
增加了新關鍵字 restrict,inline,_Complex,_Imaginary,_Bool
支持 long long,long double _Complex,float _Complex 這樣的類型
支持了不定長的數組。數組的長度就可以用變量了。聲明類型的時候呢,就用 int a[*] 這樣的寫法。不過考慮到效率和實現,這玩意並不是一個新類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章