資料介紹
如果有一段引述用來描述C語言編程的話,那就是它了。對于大多數程序員,C是極其可怕而且邪惡的。他就像是惡魔、撒旦,或者一個使用指針的花言巧語和對機器的直接訪問來破壞你生產力的騙子洛基。于是,一旦這位計算界的路西法將你纏住,他就會使用邪惡的“段錯誤”來毀掉你的世界,并且揭露出與你交易中的騙局而嘲笑你。
然而,C并不應由于這些現實而受到責備。你的電腦和控制它的操作系統才是真正的騙子,而不是朋友。它們通過密謀來向你隱藏它們的真實執行邏輯,使你永遠都不真正知道背后發生了什么。C編程語言的失敗之處只是向你提供接觸背后真正工作原理的途徑,并且告訴了你一些難以接受的事實。C會向你展示痛苦的真像(紅色藥丸),它將幕布拉開來向你展示一些神奇的原理。C即是真理。
既然C如此危險,為什么還要使用它?因為C給了你力量來穿越抽象的假象,并且將你從愚昧中解放出來。
這本書的目的是讓你足夠熟悉C語言,并能夠使用它編寫自己的軟件,或者修改其他人的代碼。這本書的最后,我們會從一本叫做“K&R C”的名著中選取實際的代碼,并且用你學過的知識來做代碼審查。你需要學習下面這些東西來達到這一階段:
C的基本語法和編寫習慣。
編譯, make 文件和鏈接。
尋找和預防bug。
防御性編程實踐。
使C的代碼崩潰。
編寫基本的Unix系統軟件。
截至最后一章,你將會有足夠的工具來解決基本的系統軟件、庫和其它小項目。
這本書為那些已經掌握至少一門編程語言的人而設計。如果你還沒有接觸過編程,我推薦你先學習笨辦法學Python,這本書適用于真正的新手并且適合作為第一本編程書。一旦你學會了Python,你可以返回來開始學習這本書。
對于那些已經學會編程的人,這本書的開頭可能有些奇怪。它不像其它書一樣,那些書中你會閱讀一段段的文字然后編寫一些代碼。相反,這本書中我會讓你立即開始編程,之后我會解釋你做了什么。這樣更有效果,因為你已經經歷過的事情解釋起來更加容易。
由于采用了這樣的結構,下面是本書中你必須遵守的規則:
手動輸入所有代碼。不要復制粘貼!
正確地輸入所有代碼,也包括注釋。
運行代碼并保證產生相同的輸出。
如果出現了bug則修正它。
做附加題時,如果你做不出某道題,馬上跳過。
在尋求幫助之前首先試著自己弄懂。
如果你遵守了這些規則,完成了本書的每一件事,并且還不會編程C代碼的話,你至少嘗試過了。它并不適用于每個人,但是嘗試的過程會讓你成為一個更好的程序員。
我假設你來自于一種弱者的語言。這些“易用的”語言之一是Python或者Ruby,它們帶給了你草率的思維和半吊子的黑魔法?;蛘?,你可能使用類似Lisp的語言,它假設計算機是純函數式的奇幻大陸,帶有一些為嬰兒準備的充氣墻。再或者你可能學過Prolog,于是你認為整個世界都是一個數據庫,你可以從中尋找線索。甚至更糟糕的是,我假設你一直都在用IDE,所以你的大腦布滿了內存漏洞,并且你每打三個字符都要按CTRL+空格來打出函數的整個名字。
無論你的背景如何,你都可能不擅長下面四個技能:
閱讀和編寫
如果你使用IDE這會尤其正確。但是總體上我發現程序員做了很多“略讀”,并且在理解上存在問題。它們會略讀需要詳細理解的代碼,并且覺得他們已經理解了但事實上沒有。其它語言提供了可以讓他們避免實際編寫任何代碼的工具,所以面對一種類似C的語言時,他們就玩完了。你需要知道每個人都有這個問題,并且你可以通過強迫自己慢下來并且仔細對待閱讀和編寫代碼來改正它。一開始你可能感到痛苦和無聊,但是這樣的次數多了它也就變得容易了。
專注細節
每個人都不擅長這方面,它也是劣質軟件的罪魁禍首。其它語言讓你不會集中注意力,但是C要求你集中全部注意力,因為它直接在機器上運行,并且機器比較挑剔。C中沒有“相似的類型”或者“足夠接近”,所以你需要注意,再三檢查你的代碼,并假設你寫的任何代碼都是錯的,直到你能證明它是對的。
定位差異
其它語言程序員的一個關鍵問題就是他們的大腦被訓練來指出那個語言的差異,而不是C。當你對比你的代碼和我練習中的代碼時,你的眼睛會跳過你認為不重要或者不熟悉的字符。我會給你一些策略來強制你觀察你的錯誤,但是要記住如果你的代碼并不完全像書中的代碼,它就是錯的。
規劃和調試
我喜歡其它較簡單的語言,因為我可以想怎么寫就怎么寫。我將已有的想法輸入進解釋器,然后可以立即看到結果。你可以把你的想法試驗出來,但是要注意,如果你仍然打算“試驗代碼使其能夠工作”,它就行不通了。C對于你來說稍困難,因為你需要規劃好首先創建什么。的確,你也可以進行試驗,但是比起其他語言,你必須在C中更早地嚴肅對待代碼。我會教給你在編程之前規劃程序核心部分的方法,這對于使你成為更好的程序員十分有幫助。即使一個很小的規劃,都會使接下來的事情變得順利。
學習C語言會使你變成更好的程序員,因為會強制你更早、更頻繁地解決這些問題。你不會再草率地編寫半吊子的代碼,代碼也會能夠正常工作。C的優勢是,它是一個簡單的語言,你可以自己來弄清楚,這使得它成為用于學習機器,以及提升程序員核心技能的最佳語言。
C比其它語言都要難,而這是由于C并不對你隱藏細節,它們在其它語言中都試圖并且未能被掩蓋。
- Advanvanced C++中文版電子書下載 35次下載
- 現代無線電實驗的PDF電子書免費下載 110次下載
- 半導體收音機淺談的PDF電子書免費下載 84次下載
- 高級語言程序設計從菜鳥到大師深入C語言程序設計PDF電子書免費下載 84次下載
- SHARP電子元器件綜合目錄中文版PDF電子書免費下載 6次下載
- 8051系列單片機C程序設計完全手冊PDF電子書免費下載 160次下載
- 笨辦法學C中文版電子書免費下載 38次下載
- 51單片機C語言程序100例電子書免費下載 228次下載
- 單片機高級語言C51Windows環境編程與應用PDF電子書免費下載 87次下載
- 信號與系統奧本海默第2版PDF中文版電子書免費下載 1431次下載
- 電冰箱快速維修PDF電子書免費下載 18次下載
- 家電維修1128例PDF電子書免費下載 81次下載
- STM8 C語言精品編程100例PDF版電子書免費下載 61次下載
- 數字信號處理算法C語言實現PDF版電子書免費下載 93次下載
- 《Visual C++游戲編程基礎》電子書.pdf 188次下載
- C++語言的發展 100次閱讀
- C語言入門基礎知識科普 1566次閱讀
- 詳解C語言中的短路現象 1704次閱讀
- 使用51單片機讀寫AT29C040的C語言程序免費下載 2750次閱讀
- C語言的誕生 C語言與C++40年的相愛相殺 869次閱讀
- HD44780讀寫單片機C51程序免費下載 2556次閱讀
- 使用C語言實現萬年歷星期速算法的源代碼免費下載 1641次閱讀
- 深度分析C語言和其他高級語言的區別 3408次閱讀
- c語言入門書籍推薦 2.4w次閱讀
- 學習開發環境和編程語言:匯編語言和C語言的比較 7762次閱讀
- 最新電子書拆解評測系列報道(一):打開你的眼界 1w次閱讀
- 10分鐘教會你UltraFAST十大準則 8274次閱讀
- keil uvision2中文版|keil uvision2漢化補丁下載 8753次閱讀
- keil uvision2下載|keil uvision2漢化免費版下載 1w次閱讀
- AUTOCAD2009免費下載中文版 CAD2009簡體中文下載及安裝方法 1.1w次閱讀
下載排行
本周
- 1使用紅外傳感器的避障機器人
- 0.00 MB | 2次下載 | 免費
- 2使用土壤濕度傳感器的植物澆水和監控系統
- 0.26 MB | 2次下載 | 免費
- 3常用PIC系列8位單片機芯片引腳符號功能
- 0.07 MB | 2次下載 | 免費
- 4Amabie消毒機器人開源分享
- 0.07 MB | 1次下載 | 免費
- 5臺達PLC選型手冊
- 4.89 MB | 1次下載 | 1 積分
- 6FP7122恒流降壓DC-DC中文資料
- 0.50 MB | 1次下載 | 免費
- 7為應用選擇合適的 ADC
- 236.08KB | 1次下載 | 免費
- 8COVID-19額溫槍開源分享
- 12.62 MB | 1次下載 | 免費
本月
- 1178個經典c語言源代碼
- 0.08 MB | 48次下載 | 免費
- 2主板維修精華秘籍
- 0.05 MB | 15次下載 | 免費
- 3使用光敏電阻和LED燈的環境光傳感器
- 0.63 MB | 14次下載 | 免費
- 4自動駕駛汽車開源分享
- 0.01 MB | 13次下載 | 免費
- 510KW的車載OBC電路圖
- 1.31 MB | 11次下載 | 1 積分
- 6芯狼電子無線充電原理圖
- 0.10 MB | 10次下載 | 免費
- 7電感式傳感:線性位置傳感(第 1 部分)
- 157.05KB | 8次下載 | 免費
- 8藍牙音箱SCH原理圖
- 0.08 MB | 8次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 934979次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537664次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 419949次下載 | 免費
- 4OrCAD10.5下載,OrCAD10.5中文版軟件
- 817182 | 234203次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 232968次下載 | 免費
- 6數據采集系統基礎知識視頻
- 16.3 MB | 192989次下載 | 免費
- 7電路仿真軟件multisim 10.0免費下載
- 340992 | 191054次下載 | 免費
- 8十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183181次下載 | 免費
評論