C語言標準及其區別

2021-08-31 03:14:36 字數 1395 閱讀 7980

0、c語言,2023年由dennis m. ritchie設計和實現。

1、k&r c。2023年由kernighan和ritchie合寫的書《the c programming language》,形成了c語言的事實的標準,簡稱為k&r c。

2、ansi cc89c90)。2023年,美國國家標準局(ansi)頒布了第乙個官方的c語言標準(x3.159-1989),簡稱為ansi c或c89;2023年,它被國際標準化組織(iso)採納國際標準(iso/iec9899:1990),簡稱為c90。這個標準是目前廣泛使用並完全支援的。

3、c99。199年,iso/ansi又推出了新的標準(iso9899:1999),簡稱c99。這個標準目前支援的可能還不太全面。

c89/c90標準的指導原則是

1、相信程式設計師;

2、不妨礙程式設計師做需要完成的事情;

3、讓語言保持短小簡單;

4、只提供一種方法來執行一種操作;

5、使程式執行速度快,即使不能保證其可移植性。(不追求定義的抽象統一,更優先考慮執行效率)

c89/c90對k&r c的改變有

0、增加了函式原型(prototype),強調對函式的輸入引數進行嚴格的型別檢查;並補充定義了c語言的標準函式庫

1、刪除了關鍵字:entry(條目/入口)

2、增加了關鍵字:const(常型變數)、enum(列舉型別)、signed(有符號的,例如signed char)、void(空/無,可用於函式返回值和形參、通用指標型別)、volatile(易變變數,防止編譯器錯誤的優化)

3、傳遞結構:允許將結構本身作為引數傳遞給函式(原來只允許傳位址)

4、函式原型:增加了函式原型(便於編譯器進行型別檢查)

5、增加了預處理指令:#elif(else if)、#error(錯誤,強制編譯停止)、#line(修改當前行號和源檔名)、#pragma(附註/編譯指令,編譯器定義的與實現有關的指令)

6、定義了固有巨集:__line__(當前行號)、__file__(源檔名)、__date__(當前系統日期)、__time__(當前系統時間)、__stdc__(標準c版時為1)

c99的修訂目標主要有三點

1、支援國際化程式設計,引入了支援國際字符集unicode的資料型別和庫函式;

2、修正原有版本的明顯缺點。如整數的移植方法,例如int8_t、int16_t、int32_t和int64_t等型別;

3、針對科學和工程的需要,改進計算的實用性。例如新增了複數型別和新數學函式。

c99標準的新特性

C語言標準

寫在前面 k r c不用說。個人以為,我們平常說的標準c,指的是ansi c,iso c,c89,c90。k r c ansi c和iso c c 的第乙個標準是由ansi發布的。雖然這份文件後來被國際標準化組織 iso 採納並且iso發布的修訂版也被ansi採納了,但名稱ansi c 而不是 is...

C語言標準

c語言標準 寫在前面 k r c不用說。個人以為,我們平常說的標準c,指的是ansi c,iso c,c89,c90。k r c 1978年,丹尼斯 里奇 dennis ritchie 和布萊恩 柯林漢 brian kernighan 合作出版了 c程式語言 的第一版。書中介紹的c語言標準也被c語言...

標準C語言

1 檔案相關 建立檔案 touch 檔名 原本是用來修改檔案屬性的,但如果檔案不存在 會自動把檔案建立出來。刪除檔案 rm 檔名 此命令刪除時不經過 站,檔案恢復困難。複製檔案 cp 原始檔 目標位置 在複製過程中可以修改檔名。移植檔案 mv 原始檔 目標位置 用法與cp基本一致,區別是cp原始檔還...