美國國家標準協會(ansi)於 1983 年組建了乙個委員會(x3j11),開發了一套新標準,並於2023年正式公布。該標準(ansi c)定義了c語言和c標準庫。國際標準化組織於2023年採用了這套c標準(iso c)。iso c和ansi c是完全相同的標準。ansi/iso標準的最終版本通常叫作c89(因為ansi於2023年批准該標準)或c90(因為iso於2023年批准該標準)。另外,由於ansi先公布c標準,因此業界人士通常使用ansi c。
2023年,ansi/iso聯合委員會(c9x委員會)開始修訂c標準,最終發布了c99標準。該委員會遵循了最初c90標準的原則,包括保持語言的精練簡單。委員會的用意不是在c語言中新增新特性,而是為了達到新的目標。第1個目標是,支援國際化程式設計。例如,提供多種法處理國際字符集。第2個目標是,「調整現有實踐致力於解決明顯的缺陷」。因此,在遇到需要將c移至64位處理器時,委員會根據現實生活中處理問題的經驗來新增標準。第3個目標是,為適應科學和工程專案中的關鍵數值計算,提高c的適應性,讓c比fortran更有競爭力。
c99的修訂保留了c語言的精髓,c仍是一門簡潔高效的語言。本書指出了許多c99修改的地方。雖然該標準已發布了很長時間,但並非所有的編譯器都完全實現c99的所有改動。因此,你可能發現c99的一些改動在自己的系統中不可用,或者只有改變編譯器的設定才可用。
標準委員會在2023年承諾c標準的下乙個版本是c1x(草案標準),2023年發布了c11標準。
本書使用術語ansi c、iso c或ansi/iso c講解c89/90和較新標準共有的特性,用c99或c11介紹新的特性。有時也使用c90( 例如,討論乙個特性被首次加入c語言時)。
gnu編譯器集合(也被稱為gcc,其中包含gcc c編譯器)是gnu專案的產品之一。它的c編譯器緊跟c標準的改動。gcc有各種版本以適應不同的硬體平台和作業系統,包括unix、linux和windows。用gcc命令便可呼叫gcc c編譯器。許多使用gcc的系統都用cc作為gcc的別名。
llvm專案成為cc的另乙個替代品。該專案是與編譯器相關的開源軟體集合,始於伊利諾伊大學的2000份研究專案。它的clang編譯器處理c**,可以通過clang呼叫。有多種版本供不同的平台使用,包括linux。2023年,clang成為freebsd的預設c編譯器。clang也對最新的c標準支援得很好。
gnu和llvm都可以使用-v選項來顯示版本資訊,因此各系統都使用cc別名來代替gcc或clang命令。以下組合:
cc -v 顯示你所使用的編譯器及其版本。
gcc和clang命令都可以根據不同的版本選擇執行時選項來呼叫不同c標準。
gcc -std=c99 inform.c
gcc -std=c1x inform.c
gcc -std=c11 inform.c
clang編譯器在這一點上用法與gcc相同。
初識C語言
一 計算機工作原理 處理單元 cpu 計算 處理程式 隨機訪問儲存器 ram 臨時儲存檔案和程式 硬碟 永久儲存器 等等。二 c語言程式設計七步 1 定義程式設計目標 2 設計程式 3 寫程式源 4 執行程式 5 編譯 6 除錯和測試 7 維護和修改。三 編譯器的任務 將源 編譯形成機器語言 四 鏈...
初識C語言
佔位符 d f c lf s ld 位操作符 轉義符 n r f ddd xhh 操作符 指令系統的每一條指令都有乙個操作符,它表示該指令應進行什麼性質的操作。字元的輸入輸出 getchar putchar 資料的格式化輸入輸出 scanf printf 的作用 表示該符號之前的內容已經結束。簡單的...
初識 C 語言
1.c 語言的起源 1972年,貝爾實驗室的丹尼斯 里奇 dennis ritch 和肯 湯普遜 ken thompson 在開發 unix 作業系統時設計了 c 語言。c 語言不完全是里奇的突發奇想而來,他是在 b 語言 湯普遜發明 的基礎上進行設計。至於 b 語言的起源,那是另乙個故事。c 語言...