以下為**:
【k&r c】1978 年,dennis ritchie 和 brian kernighan 合作推出了《the c programming language》的第一版(按照慣例,經典著作一定有簡稱,該著作簡稱為 k&r),書末的參考指南 (reference manual) 一節給出了當時 c 語言的完整定義,成為那時 c 語言事實上的標準,人們稱之為 k&r c。從這一年以後,c 語言被移植到了各種機型上,並受到了廣泛的支援,使 c 語言在當時的軟體開發中幾乎一統天下。
【c89 (ansi c)】隨著 c 語言在多個領域的推廣、應用,一些新的特性不斷被各種編譯器實現並新增進來。於是,建立乙個新的「無歧義、於具體平台無關的 c 語言定義」 成為越來越重要的事情。1983 年,asc x3(ansi 屬下專門負責資訊科技標準化的機構,現已改名為 incits)成立了乙個專門的技術委員會 j11(j11 是委員會編號,全稱是 x3j11),負責起草關於 c 語言的標準草案。1989 年,草案被 ansi 正式通過成為美國國家標準,被稱為 c89標準。
【c90 (iso c)】隨後, 《the c programming language》第二版開始出版發行,書中內容根據 ansi c(c89)進行了更新。1990 年,在 iso/iec jtc1/sc22/wg14 (iso/iec 聯合技術第 i 委員會第 22 分委員會第 14 工作組) 的努力下,iso 批准了 ansi c 成為國際標準。於是 iso c(又稱為 c90) 誕生了。除了標準文件在印刷編排上的某些細節不同外,iso c(c90) 和 ansi c(c89) 在技術上完全一樣。
【c95】之後,iso 在 1994、1996 年 分別出版了 c90 的技術勘誤文件,更正了一些印刷錯誤,並在1995 年通過了乙份 c90 的技術補充,對 c90 進行了微小的擴充,經過擴充後的 iso c 被稱為 c95。
【c99】 1999 年,ansi 和 iso 又通過了最新版本的 c 語言標準和技術勘誤文件,該標準被稱為c99。這基本上是目前關於 c 語言的最新、最權威的定義了。
現在,各種 c 編譯器都提供了 c89(c90) 的完整支援,對c99還只提供了部分支援,還有一部分提供了對某些 k&r c 風格的支援。
目前主要的c語言規範有c89(c90), c95(94)和c99。c89是最早的c語言規範,於89年提出,90年先由美國國家標準局推出ansi版本,後來被接納為iso國際標準(iso/iec 9899:1990),因而有時也稱為c90。但在94和96年分別對c90進行了兩次錯誤修正,gcc支援的是修正後的c89(90)版本的c語言規 範。在95年提出過對90版規範的修訂案,稱為 c95或者amd1。gcc也支援c95規範。最新的一次c規範修訂在99年制定(iso/iec 9899:1999),即常稱的c99規範。在2023年對c99的錯誤進行了修正,gcc支援的修正後的c99規範,但是到目前為止,gcc還沒有完成對c99規範的完全支援。
另附:c語言起源
【起源】 c 語言最早的原型是 algol 60 1963 年,劍橋大學將其發展成為 cpl(combined programing language)。 1967 年,劍橋大學的 matin richards 對 cpl 語言進行了簡化,產生了 bcpl 語言。 1970 年,美國貝爾實驗室(bell labs)的 ken thompson 將 bcpl 進行了修改,並取名叫做 b 語言,意思是提取 cpl 的精華(boiling cpl down to its basic good features)。並用 b 語言寫了第乙個 unix 系統。 1973 年,at&t 貝爾實驗室的 dennis ritchie(d.m.ritchie) 在 bcpl 和 b 語言的基礎上設計出了一種新的語言,取 bcpl 中的第二個字母為名,這就是大名鼎鼎的 c 語言。隨後不久,unix 的核心(kernel) 和應用程式全部用 c 語言改寫,從此,c 語言成為 unix 環境下使用最廣泛的主流程式語言。
[1] 維基百科ansi c
[2] c語言的各種版本:c89,amd1,c99,c11 【推薦閱讀】
C C 起源及C89 C99 C11標準
ffmpeg使用的是c99。而vc支援的是c89 不支援c99 因此vc一般情況下是無法編譯ffmpeg的源 的。c標準 c語言起源,c99 c11 c89標準和c99標準c11標準的區別 c89 和 c99 標準比較 k r c 1978 年,dennis ritchie 和 brian kern...
C語言三大標準C89,C99和C11
1983 年美國國家標準局 american national standards institute,簡稱 ansi 成立了乙個委員會,專門來制定c語言標準。1989 年c語言標準被批准,被稱為 ansi x3.159 1989 programming language c 這個版本的c語言標準通...
C 11 與 C99的相容
c 對以下c99特性的支援納入了新標準之中 1 c99中的預定義巨集 2 func 預定義識別符號 3 pragma操作符 4 不定引數巨集定義以及 va args 5 寬窄字串連線 使用上述巨集可以檢查機器環境對c標準和c庫的支援情況。include using namespace std int...