《C語言介面與實現》
這本書買了很久了,可能是研究生的時候湊單買的,從來沒有翻過。前兩天看一個書單推薦這本書,於是拿來看看講的什麼內容。
這本書是個外國人寫的,計算機類的書我們一般迷信外國人,外國人也從來沒讓我們失望過,這本書也不例外。
介面之所以重要,是因為介面定義了模組的行為,是模組的邊界所在。這本書可以看作是介面設計的範本。書中介紹的介面種類非常多,適用於幾乎所有介面型別。這裡的介面不是元件間介面,也不是跨領域跨子系統的介面,這些介面因為理解的一致性和儘量少的資料暴露,一般採用標準型別介面。書中的介面指模組內部不同層次、不同實體之間的互動方式,或者是編寫的底層函式用於給高層提供基礎功能,如記憶體管理、連結串列、動態陣列、字串等。
需要關注的是,書裡採用了一套基於C語言的自定義的語言規則,翻譯成了“文學程式”(不是虛擬碼?),所以需要仔細閱讀第一章的引言。說不清楚為什麼,總覺得這本書翻譯得非常差勁,很多地方都與主流描述方法不同。有些地方可能需要用中文重寫,翻譯者只是照著原文直接翻譯。第二章介面與實現是對本書所描述的內容一個非常專業的介紹,看第二章的時候能感覺出來,這本書原本可能不是為了出書的,而可能是作者寫來做培訓或者其他的小冊子,因為從書的角度,它缺少一個脈絡,如果讀著不自己總結,無法理清楚章節內部的邏輯關係,章節與章節之間的邏輯關係。
回到書的內容本身,看完前兩章之後就可以不用按部就班地看了,可以挑一兩個章節學習。比如現在對記憶體管理感興趣,可以直接跳到對應章節。書中午的程式碼非常全,從介面到實現都是可以“照抄”的,照抄加了引號,是因為所謂照抄的程式碼的前提是對模組對外服務的理解,在此基礎上可以學習作者的封裝思想。
一句話總結:從內容上來說,這是一本非常優秀而且實用的工具書。