?? 前言.txt
字號:
序自從1978年《C程序設計語言》出版以來,計算機界經歷了一場革命。大型計算機變得更大;而個人計算機的能力可以和十年前的主流計算機相媲美。在這段時間中,C語言也在悄悄地改變,并且早已超出了僅僅作為UNIX操作系統的語言的范疇。 C的適用范圍的擴大、在這些年中語言的改變和各個組織開發的超出其預定內容的編譯器,所有這一切要求對C語言有一個比本書第1版更精確和更新的定義。在1983年,美國國家標準協會(ANSI)成立了一個委員會,它的目標是產生“一個無二義性的、獨立于機器的C語言的定義”,同時仍保持其精髓。其結果就是C的ANSI標準。此標準規范了一些在本書第1版中提示過但沒有描述的結構,特別是結構賦值和枚舉。它提供了一種新的函數聲明的形式,允許在使用中對函數的定義進行交叉檢查。它說明了一個標準庫和一個完成輸入輸出、內存管理和字符串操作等類似任務的函數集擴充。此標準明確地說明了原始定義沒有指出的一些特性的行為。同時,此標準還明確地說明了語言中的哪些部分依然依賴于機器。《C程序設計語言》的第2版描述的是ANSI標準定義的C語言。盡管我們已經指出語言中的多種革新,但我們還是決定不用新的形式來寫。對于大部分內容并沒有多大的差別,最明顯的改變是新形式的函數聲明和定義。現代編譯器已能支持此標準的大部分特性。我們盡力保持本書第1版的簡潔性。C不是一個大型語言,也不需要一本很厚的書來描述。我們改進了對典型特性的闡述,如指針,它是C程序設計的中心。我們對以前的例子進行了提煉,并在幾章中增加了新的例子。例如,我們用程序來處理復雜的聲明,這些程序將聲明轉換為單詞或反之。像以前一樣,所有例子的文本都以機器可讀的形式直接經過測試。附錄A是參考手冊,不是標準,但我們的目的是希望用較少的篇幅表述標準的要點。它是要對于程序員來說容易理解,而不是提供給編譯器實現者的定義—這正是標準承擔的角色。附錄B是對標準庫提供的功能的總結。附錄C是對以前版本的變動的小結。就像我們在第1版序中所說的,“當對C的經驗增加時它顯得很好用”。經過十幾年的實踐,我們仍然這么認為。我們希望這本書能幫助你學習并使用好C語言。非常感謝那些幫助我們完成本書這一版的朋友們。Jon Bentley、Doug Gwyn、Doug McIlroy、Peter Nelson和Rob Pike幾乎對本書手稿的每一頁都提出了建議。我們非常感謝Al Aho、Dennis Allison、Joe Campbell、G.R.Emlin、Karen Fortgang、Allen Holub、Andrew Hume、Dave Kristol、John Linderman、Dave Prosser、Gene Spafford和Chris Van Wyk,他們仔細地閱讀了本書。我們也收到了來自Bill Cheswick、Mark Kernighan、Andy Koenig、Robin Lake、Tom London、Jim Reeds、Clovis Tondo和Peter Weinberger的有益的建議。Dave Prosser回答了很多關于ANSI標準的細節問題。我們廣泛地使用了Bjarne Stroustrup的C++的翻譯程序來部分測試我們的程序。Dave Kristol為我們提供了一個ANSI C編譯器進行最終測試。Rich Drechsler幫助我們進行了排版。誠摯地感謝每一個人。 Brian W. Kernighan Dennis M. Ritchie
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -