2009-04-22 28 views
15

我想研究一些很好的C/C++代碼。該代碼應:真正的C/C++代碼優秀示例的建議

  1. 良好的風格和結構,展示最佳實踐
  2. 是一個現實生活中的程序(不舉例或玩具)
  3. 不是太大,因此不會需要年齡分析它
  4. Windows和/或Unix

我知道有開源項目在那裏的1000。但我想聽聽你的建議。

我的Java程序員,我很好奇,在C有多好項目/ C++的結構(文件),類/功能/文件,文檔/評論粒度,構建工具等

多的建議是,例如歡迎這是很好的窗口例子,這是好的純C等

+4

這應該是社區Wiki。 – 2009-04-22 21:48:53

回答

8

我想特別提到memcached.它具有明確的目的相當短的,可讀的代碼一個很好的例子。

其次,我會建議Apache web server。這是一個運行良好的開源項目,您將從語言,以及一般設計實踐和網絡/線程兩方面學到很多東西。

2

這裏的main filerelayd,這是處理負載均衡和故障轉移功能的守護進程。它寫得很好,功能齊全,乾淨的C代碼。它足夠讓你體會到一個「真實世界」的程序,但並不是那麼大,以至於無法用一些工作來解決它。非常適合安全,編寫良好的網絡代碼,守護進程等。

謙虛一邊,還有一點爲我幫了X的tiling window manager。它非常小,但它是一個真正的WM,其他編碼器有很高的標準(並且支持我!)...很好的學習基本X的東西。

4

Samba:一個大的,跨平臺(POSIX爲主),純C,非常流行的網絡服務器。

Samba有很好的developer documentation,而且代碼庫本身是非常有組織的很好;我沒有任何問題潛入代碼中的任何位置,以回答我關於其內部工作的問題或追蹤錯誤。

3

我去找Lua的實施是相當不錯的C源。但是作爲一個示例項目,語言有點奇怪。

+0

許多歷史來源資料包(包括當前的5.1.4)位於http://www.lua.org/ftp/,並且在http://www.lua.org/source上有一個到當前資源工具包的Web界面/5.1/ – RBerteig 2009-04-22 23:08:34

3

Diomidis Spinellis在他的書「Code Reading:The Open Source Perspective」,Addison Wesley,2003,ISBN 0-201-79940-5中有一些建議。

也許這本書能對您有所幫助。

URL http://www.spinellis.gr/codereading/

3

Google's Chromium是相當巨大的,但你不必去分析它所有的欣賞它乾淨,同行評議的結構。另外,這是開發人員環境部署很好的一個很好的例子。

+0

感謝您的建議!我只能將一個答案標記爲「已接受」,但您的建議是我將要研究的第三個項目。 – k1udge 2009-04-23 22:31:59

-1

你一定需要C或C之間進行選擇++的例子。一個明顯的例子:錯誤管理的良好做法差異很大。

+0

我低估了,因爲這應該是一個評論。 – nbro 2017-01-15 00:08:10

1

K&R有很多很好的真實程序的例子。例如,在第二版的第115頁中有echo命令的兩個簡單實現。從那裏,看看命令是如何隨着時間的推移可能會很有趣。例如,GNU coreutils源文件中有一個版本。源自BSD的版本可以在BusyBox源中找到。

看到新版本如何與教科書示例進行比較可能會很有趣。爲什麼在現實生活中使用的程序更長?有多少代碼與新功能相關,以及與處理邊緣情況相關的代碼有多少?你將如何在Java中編寫相同的代碼?