天天看點

《C語言接口與實作:建立可重用軟體的技術》一1.4 擴充閱讀

本節書摘來自異步社群《c語言接口與實作:建立可重用軟體的技術》一書中的第1章,第1.4節,作者 傅道坤,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

對于标準c庫來說,ansi标準 [ansi 1990]和技術上等效的iso标準 [iso 1990]是權威的參考文獻,但 [plauger,1992]一書給出了更詳細的描述和完整的實作。同樣,c語言相關問題的定論就在于這些标準,但[kernighan and ritchie,1988]一書卻可能是最廣為使用的參考。[harbison and steele,1995]一書的最新版本或許是c語言标準的最新的資料,它還描述了如何編寫“幹淨的c”,即可以用c++編譯器編譯的c代碼。[jaeschke,1991]一書将标準c語言的精華濃縮為緊湊的詞典格式,這份資料對c程式員來說也很有用。

[kernighan and plauger,1976]一書給出了文學程式的早期例子,當然作者對文學程式設計沒太多認識,隻是使用了專門開發的工具将代碼內建到書中。web是首批明确為文學程式設計設計的工具之一。[knuth,1992]一書描述了web和它的一些變體及用法,[sewell,1989]一書是web的入門介紹。更簡單的工具([hanson,1987],[ramsey,1994])發展了很長時間才提供web的大部分基本功能。本書使用notangle來提取代碼塊,它是ramsey的noweb系統中的程式之一。[fraser and hanson,1995]一書也使用了noweb,該書以文學程式的形式給出了一個完整的c語言編譯器。該編譯器也是一個交叉編譯器。

double取自 [kernighan and pike,1984],在該書中double是用awk [aho, kernighan and weinberger,1988]程式設計語言實作的。盡管年齡老邁,但[kernighan and pike,1984]仍然是unix程式設計哲學方面的最佳書籍之一。

學習良好的程式設計風格,最好的方法是閱讀風格良好的程式。本書将遵循 [kernighan and pike,1984]和 [kernighan and ritchie,1988]中的風格,這種風格經久而不衰。[kernighan and plauger,1978]一書是程式設計風格方面的經典著作,但該書并不包含c語言的例子。ledgard的小書[ledgard,1987]提供了類似的建議,而 [maguire,1993]從pc程式設計的角度闡述了程式設計風格問題。[koenig,1989]一書暴露的c語言的黑暗角落,強調了那些應該避免的東西。[mcconnell,1993]一書在與程式建構相關的許多方面提供了明智的建議,并針對使用goto語句的利弊兩方面進行了不偏不倚的讨論。

學習編寫高效的代碼,最好的方法是在算法方面有紮實的基礎,并閱讀其他高效的代碼。[sedgewick,1990]一書縱覽了大多數程式員都必須知道的所有重要算法,而 [knuth,1973a]一書對算法基礎進行了至為詳細的讨論。[bentley,1982]一書有170頁,給出了編寫高效代碼方面的一些有益的建議和常識。

繼續閱讀