gcc指定不同版本c語言的選項:
gnu 89(gnu對c89做的修改版本) : 預設,-std=gnu89
ansi, iso c90: -ansi, -std=c89(ansi c(c89) 與 iso c(c90)內容基本相同,主要是格式組織不一樣)
iso c99: -std=c99
gnu 99(gnu對c99做的修改版本): -std=gnu99
c語言在19世紀70年代初問世,2023年美國**電報公司(at&t)貝爾實驗室正式發布c語言,後由美國國家標準局(american national standards institute,簡稱ansi)制定了一套c語言標準,於2023年發表,通常稱之為ansi c。
c語言之父——里奇
在學習c語言之前,我們先了解一下c語言的歷史。
c語言是一門通用的,模組化,程式化的程式語言,被廣泛應用於作業系統和應用軟體的開發。由於其高效和可移植性,適應於不同硬體和軟體平台,深受開發員的青睞。
1969-2023年在美國**電報公司(at&t)貝爾實驗室開始了c語言的最初研發。根據c語言的發明者丹尼斯·里奇 (dennis ritchie) 說,c 語言最重要的研發時期是在2023年。
說明:丹尼斯·里奇(dennis ritchie),c語言之父,unix之父。2023年與布萊恩·科爾尼幹(brian kernighan)一起出版了名著《c程式語言(the c programming language)》,現在此書已翻譯成多種語言,成為c語言方面最權威的教材之一。2023年10月12日(北京時間為10月13日),丹尼斯·里奇去世,享年70歲。
c語言之所以命名為c,是因為c語言源自ken thompson發明的 b語言,而b語言則源自bcpl語言。
c語言的誕生是和unix作業系統的開發密不可分的,原先的unix作業系統都是用組合語言寫的,2023年unix作業系統的核心用c語言改寫,從此以後,c語言成為編寫作業系統的主要語言。
2023年,丹尼斯·里奇(dennis ritchie)和布萊恩·科爾尼幹(brian kernighan)出版了一本書,名叫《the c programming language》(中文譯名為《c程式語言》)。這本書被c語言開發者們稱為「k&r」,很多年來被當作c語言的非正式的標準說明。人們稱這個版本的c語言為「k&r c」。
2023年丹尼斯·里奇(dennis ritchie)和布萊恩·科爾尼幹(brian kernighan)修改此書,出版了《the c programming language》第二版,第二版涵蓋了ansi c語言標準。第二版從此成為大學計算機教育有關c語言的經典教材,多年後也沒再出現過更好的版本。
1970到80年代,c語言被廣泛應用,從大型主機到小型微機,也衍生了c語言的很多不同版本。
為統一c語言版本,2023年美國國家標準局(american national standards institute,簡稱ansi)成立了乙個委員會,來制定c語言標準。2023年c語言標準被批准,被稱為ansi x3.159-1989 "programming language c"。這個版本的c語言標準通常被稱為ansi c。又由於這個版本是 89 年發布的,因此也被稱為 c89。
後來 ansi 把這個標準提交到 iso(國際化標準組織),2023年被 iso 採納為國際標準,稱為 iso c。又因為這個版本是2023年發布的,因此也被稱為c90。
ansi c(c89) 與 iso c(c90)內容基本相同,主要是格式組織不一樣。
因為 ansi 與 iso 的c標準內容基本相同,所以對於c標準,可以稱為ansi c,也可以說是iso c,或者 ansi / iso c。
注意:以後大家看到 ansi c、iso c、c89、c90,要知道這些標準的內容都是一樣的。
目前,幾乎所有的開發工具都支援 ansi / iso c 標準。是c語言用得最廣泛的乙個標準版本。
在ansi c標準確立之後,c語言的規範在很長一段時間內都沒有大的變動。2023年c程式語言工作組對 c語言進行了一些修改,成為後來的2023年發布的 iso/iec 9899:1999標準,通常被成為c99。
但是各個公司對c99的支援所表現出來的興趣不同。當gcc和其它一些商業編譯器支援c99的大部分特性的時候,微軟和borland卻似乎對此不感興趣。
說明:gcc(gnu compiler collection,gnu編譯器集合)是一套由gnu工程開發的支援多種程式語言的編譯器。
綜上所述,目前廣泛使用的c語言版本是 ansi / iso c,最經典的c語言教材是《c程式語言(the c programming language)》。
c語言各種錯誤
在結構體中char i 但是輸入scanf d i 會報異常 一 如果已經釋放,那麼為啥還能指到當前結構的next成員?指標變數中儲存的是記憶體位址,釋放記憶體,只是將這塊位址的使用權交出去了,而變數的值 位址 系統並不進行修改。釋放的是記憶體,不是變數!二 那麼釋放該記憶體後,這塊記憶體,實際是把...
vs各種版本
檔名稱 檔案大小 visual studio 2015 enterprise 企業版 簡體中文 3.89gb vs2015.ent chs.iso visual studio 2015 professional 專業版 簡體中文 3.84gb vs2015.pro chs.iso visual st...
C語言各種排序思想
1 氣泡排序 如果是公升序,就是把最大的數排到末尾,末尾下標向前移動,利用相鄰數字比較大小實現把最大的數排到末尾,a j 和a j 1 比較大小,如果a j 1 大則交換。這樣兩兩交換下來,最後乙個肯定最大,最後乙個已經排好,下次迴圈不用再排,所以下標做減一操作。include include in...