易燃物匯聚 YouTube 有聲書與書評
C陷阱與缺陷 封面

C陷阱與缺陷

安德魯·凱尼格

2325人在讀
12.2萬字總字數
¥31.36定價

有聲書與視頻解讀 YouTube視頻解讀 1

內容簡介

《C陷阱與缺陷》作者以自己1985年在貝爾實驗室時發表的一篇論文爲基礎,結合自己的工作經驗將這篇論文擴展成對C程序員具有珍貴价值的經典著作。本書的出發點不是批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。《C陷阱與缺陷》分爲8章,分別從詞法陷阱、語法陷阱、語義陷阱、鏈接、庫函數、預處理器、可一致性缺陷等幾個方面分析了C編程中可能遇到的問題。最後,作者用一章的篇幅給出了若干具有實用價值的建議。《C陷阱與缺陷》適合有一定經驗的C程序員閱讀學習,即便你是C編程高手,本書也應該成爲你的案頭必備圖書。

讀者書評

★★★★★

多年前,我是看不懂本書的。C雖然是高級語言,但是相對其他高級語言來說,它過於面向底層,它是對彙編的進一步抽象。要真正理解C,必須理解操作系統,理解CPU,理解內存,甚至理解C是怎樣編譯的。指針的本質是對內存訪問的抽象,理解了內存的原理,也就理解了指針。人們往往誤以爲指針就是內存地址,其實二者是有區別的。指針是一種類型,它的值是內存地址,而不是數據。所以指針變量存放的是內存地址,而不是內存地址對應的數據。內存地址是基於字節的,但由於指針具有類型,所以它指向了一段內存,這段內存的大小取決於其類型,而指針存儲的就是這段內存的起始地址。

★★★★★

想要自由,就需要有代價。 C 教會你“責任與控制: 你分配的內存必須自己釋放; 你定義的結構必須自己維護; 你組織的模塊必須自己管理依賴;

★★★☆☆

我閱讀此書,一方面是爲了查漏補缺,看一下自己對C語言的理解和使用是否尚有不到位的地方,另一方面是想溫習一下相關的知識,用以準備一個算法比賽。當然,因爲作者本身是C的專家,他提到“缺陷”,我還是想看看他對此的高見,不過,這倒是我的誤會了。 本書的寫作目的並非是爲了挑C語言的毛病或者缺陷,而是爲了指出使用C時容易犯下的錯誤。(標題中的pitfalls本意也是“陷阱”,而非“缺陷”的意思,不知道這個“缺陷”是否是某些特定語境下延伸出來的擴展意?) 我快速過了一下這本書,然後發現這本書的內容多少有些過時了,舉的例子有些還是關於Fortran語言的,當然這也是沒辦法的事,畢竟本書最初源於作者1978年寫的一篇論文。不過,我感到很幸運的一件事是,我當時看的C入門書籍是哈工大蘇小紅老師的《C語言程序設計》,書中的內容簡單易懂,也有提及Andrew在本書指出的一些注意事項,算是爲我的C語言打下了一個不錯的基礎吧。 下面是關於本書的一些摘抄: 我們應該堅持只使用C語言中衆所周知的部分,而避免使用那些“生僻”的語言特性。程序的生命期往往要長於它運行其上的機器的生命期。用類來表示概念。類設計就是語言設計,語言設計就是類設計。C++在運行時性能上做了一個很好的折中,能夠在“一切都是對象”的語言和“避免任何抽象”的語言之間取得恰到好處的平衡。這就是C++的實用性。

★★★★★

C裏面一些看起來正常,但結果出人意料的易錯集。

★★★★★

計算機巨佬寫的C語言排坑指南,豆瓣評分高達恐怖的9.8分! 書中針對語法陷阱、語義陷阱、預處理、可移植性、庫函數等做了細緻地闡述。 本書成文較早,篇幅也不長,但是絕對是查漏補缺、溫故知新的案頭書。

★★★★★

本書對於補充C的基礎知識很重要,特別是轉專業的,之前僅注意上層層面的程序編寫,對於與具體機器實現相關(編譯器)等不關心的,這本書幫助很大。因爲實際工作過程中,會涉及到不同的編譯器實現不同,而如果沒有意識到本書中所說的知識,你會覺得公司的代碼規範很奇怪。

★★★★★

書中的內容已經顯得有些老舊,部分用例在現代編譯環境中不會報相同的錯誤 總體來說還是推薦C語言開發者瀏覽一遍,以增強對C的理解,如果有些C語言開發經驗,閱讀起來並不困難

★★★☆☆

除了前面函數指針原型部分,其他沒什麼收穫

★★★★★

能力一般,水平有限。一些內容看不懂,一些內容覺得有點過時。但重要的是,還有一部分內容讓我獲益良多。

★★★★★

紙質版的比較便宜,很經典,讀完受益匪淺。

書籍信息

作者安德魯·凱尼格
譯者高巍
出版社人民郵電出版社
出版時間2020-08-01
ISBN9787115521279
分類計算機-編程設計
格式EPUB
完結狀態連載中
章節數75