c語言由dennis m. ritchie在2023年設計和實現。從那以後使用者逐漸增加。到2023年ritchie和bell實驗室的另一位程式專家kernighan合寫了著名的《the c programming language》,將c語言推向全世界,許多國家都出了譯本,國內有一些c語言書就是這本書的翻譯或者編譯。由這本書定義的c語言後來被人們稱作 k&r c。
隨著c語言使用得越來越廣泛,出現了許多新問題,人們日益強烈地要求對c語言進行標準化。這個標準化的工作在美國國家標準局(ansi)的框架中進行(1983-1988),最終結果是2023年10月頒布的ansi標準x3.159-1989,也就是後來人們所說的ansi c標準。由這個標準定義的c語言被稱作ansi c。
ansi c標準很快被採納為國際標準和各國的標準。國際標準為iso/iec 9899-1990,中國國家標準gb/t 15272-94是國際iso標準的中文翻譯。
ansi c標準化工作的乙個主要目標是清除原來c語言中的不安全、不合理、不精確、不完善的東西。由此也產生了ansi c與k&r c之間的差異。從總體上看,這些差異反應的是c語言走向完善、走向成熟。
(本段根據《c programming language》和c語言標準整理。不求完整,希望列出最常見的差異)
GNU C 與 ANSI C的區別
1.零長度陣列 gnu c允許使用零長度陣列,定義變長度物件時比較方便 struct var data var data的大小僅為乙個int型,data是常量位址,data index 是訪問其後的記憶體空間。struct var data s malloc sizeof var data len ...
K R C與ANSI C的區別
c語言由dennis m.ritchie在1973年設計和實現。從那以後使用者逐漸增加。到1978年ritchie和bell實驗室的另一位程式專家kernighan合寫了著名的 thec programming language 將c語言推向全世界,許多國家都出了譯本,國內有一些c語言書就是這本書的...
GNU C 與 ANSI C的區別
1.零長度陣列 gnu c允許使用零長度陣列,定義變長度物件時比較方便 struct var data var data的大小僅為乙個int型,data是常量位址,data index 是訪問其後的記憶體空間。struct var data s malloc sizeof var data len ...