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