C語言的標準和Gcc遵循標準

2021-07-13 04:31:35 字數 2567 閱讀 5390

c語言的標準

k&r c

1978

年,丹尼斯

•里奇(

dennis ritchie

)和布萊恩

•柯林漢(

brian kernighan

)合作出版了《

c程式語言》的第一版。書中介紹的

c語言標準也被

c語言程式設計師稱作

「k&r c」

,第二版的書中也包含了一些

ansi c

的標準。

k&r c

主要介紹了以下特色:

· 結構(struct

)型別

· 長整數(long int

)型別

· 無符號整數(unsigned int

)型別

· 把運算子=+和=-

改為+=和-=

。因為=+和=-

會使得編譯器不知道使用者要處理

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

1983

年,美國國家標準協會組成了乙個委員會,

x3j11

,為了創立

c 的一套標準。經過漫長而艱苦的過程,該標準於

1989

年完成,並在作為

ansi x3.159-1989 "programming language c"

正式生效。這個版本的語言經常被稱作

"ansi c"

,或有時稱為

"c89"

(為了區別

c99)。 在

1990

年,ansi c

標準(帶有一些小改動)被美國國家標準協會採納為

iso/iec 9899:1990

。這個版本有時候稱為

c90或者

iso c

。因此,

c89和

c90通常指同一種語言。 傳統

c語言到

ansi/iso標準c

語言的改進包括:

· 增加了真正的標準庫

· 新的預處理命令與特性

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

· 一些新的關鍵字,包括 const

、volatile

與 signed  

寬字元、寬字串與位元組多字元

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

c992023年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程式語言的最新標準。

g

cc遵循什麼標準

gcc支援

c90,

不完全支援

c99。

在不指定c

標準的情況下,

gcc預設使用

gnu c

。用乙個式子表示gnu c:

gnu c = c90 + gnu extensions = c90 + (some features in c99 + some features in c11)

可參考:

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