C語言的標準

2021-07-14 18:38:12 字數 1987 閱讀 4877

k&r c

2023年,丹尼斯•里奇(dennis ritchie)和布萊恩•柯林漢(brian kernighan)合作出版了《c程式語言》的第一版。書中介紹的c語言標準也被c語言程式設計師稱作「k&r c」,第二版的書中也包含了一些ansi c的標準。k&r c主要介紹了以下特色:

• 結構(struct)型別

• 長整數(long int)型別

• 無符號整數(unsignedint)型別

• 把運算子=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。

即使在後來ansi c標準被提出的許多年後,k&r c仍然是許多編譯器的最低標準要求,許多老舊的編譯仍然執行k&r c的標準。

ansi c和iso c

c 的第乙個標準是由ansi發布的。雖然這份文件後來被國際標準化組織(iso)採納並且iso發布的修訂版也被ansi採納了,但名稱ansi c(而不是 iso c)仍被廣泛使用。ansi c現在被幾乎所有廣泛使用的編譯器支援。現在多數c**是在ansi c基礎上寫的。

c89和c90

2023年,美國國家標準協會組成了乙個委員會,x3j11,為了創立 c 的一套標準。經過漫長而艱苦的過程,該標準於2023年完成,並在作為ansi x3.159-1989 「programming language c」正式生效。這個版本的語言經常被稱作」ansi c」,或有時稱為」c89」(為了區別c99)。在2023年,ansi c標準(帶有一些小改動)被美國國家標準協會採納為iso/iec 9899:1990。這個版本有時候稱為c90或者iso c。因此,c89和c90通常指同一種語言。傳統c語言到ansi/iso標準c語言的改進包括:

• 增加了真正的標準庫

• 新的預處理命令與特性

• 函式原型允許在函式申明中指定引數型別

• 一些新的關鍵字,包括const、volatile 與 signed 寬字元、寬字串與位元組多字元

• 對約定規則、宣告和型別檢查的許多小改動與澄清

c99

2023年3月,ansi 採納了 iso/iec 9899:1999 標準。這個標準通常指c99。 c99新增了一些特性,如:

• 支援不定長的陣列,即陣列長度可以在執行時決定。

• 變數宣告不必放在語句塊的開頭,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在 for 語句塊內部有效。

• 初始化結構的時候允許對特定的元素賦值。

• 允許編譯器化簡非常數的表示式。

• 取消了函式返回型別預設為int 的規定。

但是各個公司對c99的支援所表現出來的興趣不同。當gcc和其它一些商業編譯器支援c99的大部分特性的時候,微軟和borland卻似乎對此不感興趣,他們把更多的精力放在了c++上。

c11

在2023年12月,ansi 採納了 iso/iec 9899:2011 標準。這個標準通常即c11,它是c程式語言的最新標準。

gcc支援哪個c語言標準???

gcc 支援 3 個版本的 c 標準,儘管對最新版本的支援還不完整。

若沒有使用-std引數來指定gcc的c標準, 則使用預設的gnuc90標準(gcc對c99和c11支援得不完整), gnuc90標準在c90標準的基礎上進行了擴充套件.

熟知的c標準大概有三種: c90( or c89), c99, c11. 分別於2023年, 2023年, 2023年發布.

在編譯的時候指定c90標準: -ansi, -std=c90 or -std=iso9899:1990;

指定c99標準: -std=c99 or -std=iso9899:1999

指定c11標準(目前正在開發中): -std=c11 or -std=iso9899:2011

原來的ansi c標準(x3.159-1989)在2023年獲得批准, 並在2023年發布. 之後(2023年)被批准為iso標準(iso/iec 9899:1990). c89和c90在技術上沒有區別.

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原始檔還...