《狂人C》閱讀筆記(1)

來源:互聯網
上載者:User

Page8,main的原型應該是不需要void作參數的。我實驗了codeblock(使用gcc為編譯器),沒有異常。

 

另外就是代碼應該標記出行號,使用行號指明更清晰一些。

 

還有一個格式方面的問題是";“在書中單獨出現時都是全形中文”;“這個非常糟糕,很容易誤解。

 

還有一個問題是C99還是C89,我的建議是以C89為主介紹,間雜一些C99,但是C89不應該以”過時“來形容,我倒是覺得C89更主流一些。

 

page9,關於#include""和#include<>的區別,應該指出後面會討論的章節更好。

 

page14,關於中文做標識符、變數名、函數名的解釋,反而讓人比較迷糊。其實我覺得作為一本針對初學者的書籍,最好不要在開始碰這個方面,可以在後面加入一些說明補充。

 

page16,如表1-1所示,應該說”有些keyword"是C99新增關鍵字。另外我覺得這個C99其實意義不大,說了反而讓人迷惑。在後面附錄補充說明一下就可以了。

 

page19,風格習慣一節,如果說的更詳細一點就好了,太簡單。另外《狂人C》的代碼風格是({}三種風格中)最不常見的一種,應該稍微提一下三種不同風格。

 

page20,開始一個段落介紹如何讓printf分成print\換行加f這種,完全沒必要,讓人更混亂,而且程式碼範例如果從縮排來看還是錯的。

 

page20,我覺得應該是”任何一個C程式必須有而且只能有一個入口函數,這個函數絕大多數情況下定義為main。“VC++和GCC都可以通過編譯選項修改入口函數(entry function),如果用VC++,通常名字為_tmain()。還有就是main函數有兩個可不可以?如果抬杠的講,通過預定義編譯選項,可以定義兩個main,嘿嘿。

 

page20,printf()函數是由C標準庫提供(C standard library),而C標準庫大多數由作業系統編寫者提供,通常情況下GCC只負責把printf()與標準庫代碼實現編譯連結到一起。關於標準庫,也可以選擇比如DietC這種第三方。windows sdk也提供了標準庫的實現,我不是很清楚,但是理論上說GCC應該是可以使用windows SDK提供的include和library的。

 

page25,應該介紹一下D(ecimal),H(ex)這些單詞的完整形式,更好一些。

 

page29,對於學習、考試、面試而言,我覺得"同名"是一個很值得考的知識點,當然實際工作中就不要這麼寫了。

 

page31,由於字型的原因,/* */和//看上去非常奇怪,尤其是//就好像中間有個空格一樣。

 

page31,關於注釋,我不太同意書中說法。個人覺得注釋只應該在該使用的時候使用,如何注釋何時注釋,代碼大全和程式設計實踐這兩本書介紹的非常全。

 

page32,關於變數的定義,其實K&R英文版(一下提到K&R都指的是英文版頁碼)的page195說的非常清楚,《狂人C》的提法只說了其中一方面,也就是storage object這一面。不完整。

 

page32,變數使用之前必須聲明(declaration),這一點《狂人C》的說法是錯誤的,對於C語言來講,聲明(declaration)與定義(definition)是很有區別的兩回事,不可以互換使用。K&R page40說的非常清楚。而定義(definition)在K&R的page250有說明。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.