偶爾有讀者讓我推薦關(guān)于嵌入式編程的書籍,今天就為大家推薦一些經(jīng)典的“零基礎(chǔ)入門和進(jìn)階提高”的書籍。
關(guān)于C語言
先看C語言的歷史;1973 年,KenThompson 和 DennisRitchie 在做系統(tǒng)內(nèi)核移植開發(fā)時(shí),感覺使用匯編語言很難實(shí)現(xiàn)。后來決定使用一種稱為 BCPL的語言進(jìn)行開發(fā),在開發(fā)過程中,他們?cè)?BCPL 的基礎(chǔ)上做了進(jìn)一步的改進(jìn),推出了 B 語言(取 BCPL 第一個(gè)字母)。后來發(fā)現(xiàn)使用 B 語言開發(fā)的 UNIX 內(nèi)核,還是無法達(dá)到他們的預(yù)期要求,于是在 B 語言的基礎(chǔ)上,做了進(jìn)一步的改進(jìn),設(shè)計(jì)出了具有豐富的數(shù)據(jù)類型,并支持大量運(yùn)算符的編程語言。改進(jìn)后的語言較B語言有質(zhì)的飛躍,1970年左右,取名為 C 語言,并使用 C 語言成功重新編寫了 UNIX內(nèi)核。這也是為什么UNIX的時(shí)間戳默認(rèn)是從1970年1月1日開始;C/C 無處不在,到底能做哪些事情呢?
- 大多數(shù)操作系統(tǒng)內(nèi)核都是用C編寫的,包括但不限于Windows,Linux,Mac,iOS,Android等。
- 現(xiàn)代瀏覽器也是用C/C 編寫的。像Chrome,F(xiàn)irefox等。
- 現(xiàn)代游戲引擎是用C/C 編寫的,例如Unity3D,虛幻引擎,cocos2d-x等。
- 編程語言的編譯器和解釋器也是用C/C 實(shí)現(xiàn)的。
- C Primer Plus
- Linux C編程一站式學(xué)習(xí)
- C 和指針
- C 程序設(shè)計(jì)語言
- 深入理解C指針
- C 專家編程
- C 陷阱與缺陷
- C 語言的科學(xué)和藝術(shù)
- C 語言程序設(shè)計(jì)現(xiàn)代方法
- C 語言接口與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)與算法分析——C語言描述
- UNIX環(huán)境高級(jí)編程(第3版)
- Linux程序設(shè)計(jì)
C Primer Plus
《C Primer Plus(第5版)(中文版)》是C語言書最好的入門書籍之一,0基礎(chǔ)完全可以。
可以說是滿分入門書籍,內(nèi)容循序漸進(jìn),這本書重要的不止是讓你學(xué)會(huì)了C語言,更重要的是能夠鍛煉你的編程思想,這對(duì)以后的學(xué)習(xí)很有幫助。
遇到看不懂的地方多看幾遍,再看不懂就先跳過,有時(shí)候一回頭就突然懂了。
如果想把C當(dāng)作吃飯的技能,除了這本書,還必須要再補(bǔ)一下數(shù)據(jù)結(jié)構(gòu)和算法方面的知識(shí)。
Linux C編程一站式學(xué)習(xí)
本書有兩條線索:
- 一條線索是以Linux平臺(tái)為載體全面深入地介紹C語言的語法和程序的工作原理;
- 另一條線索是介紹程序設(shè)計(jì)的基本思想和開發(fā)調(diào)試方法。
- 第一部分講解編程語言和程序設(shè)計(jì)的基本思想方法,讓讀者從概念上認(rèn)識(shí)C語言;
- 第二部分結(jié)合操作系統(tǒng)和體系結(jié)構(gòu)的知識(shí)講解程序的工作原理,讓讀者從本質(zhì)上認(rèn)識(shí)C語言。
C 和指針
這本書和《專家編程》《C缺陷和陷阱》可以并稱C語言(進(jìn)階書)三杰;這本書提供與C語言編程相關(guān)的全面資源和深入討論,由淺入深;它涵蓋了C語言的全部內(nèi)容,特別注重指針的講解,除了頭尾的幾章,指針的話題幾乎是貫穿了全書。正是指針使得C語言如此之強(qiáng)大,所以要學(xué)習(xí)C語言的精髓,就是要精通指針!
C 程序設(shè)計(jì)語言
在計(jì)算機(jī)發(fā)展的歷史上,沒有哪一種程序設(shè)計(jì)語言像C語言這樣應(yīng)用廣泛。本書作者是C語言之父,相當(dāng)經(jīng)典,“hello,World"程序就是由本書首次引入的。不過讀這本書,我們得有一些unix like系統(tǒng)的操作經(jīng)驗(yàn),需要知道文件描述符,輸入輸出流,重定向,管道以及”anything is file“等在unix世界里這些歸為常識(shí)的概念;這些離我們這些在windows的世界里長大的一輩太遠(yuǎn)。
深入理解C指針
深入理解C指針和內(nèi)存管理,提升編程效率!這是一本實(shí)戰(zhàn)型圖書,通過它,讀者可以掌握指針動(dòng)態(tài)操控內(nèi)存的機(jī)制、對(duì)數(shù)據(jù)結(jié)構(gòu)的增強(qiáng)支持,以及訪問硬件等技術(shù)。
C 專家編程
雖然是技術(shù)類書籍,但是作者很幽默,書里面八卦比較多,趣味性比較強(qiáng);同時(shí)也展示了優(yōu)秀的C程序員所使用的編碼技巧,并專門開辟了一章對(duì)C 的基礎(chǔ)知識(shí)進(jìn)行了介紹。對(duì)于有一定經(jīng)驗(yàn)的C程序員會(huì)很有幫助;對(duì)于C語言功底深厚的程序員,本書可以幫助他們站在C的高度了解和學(xué)習(xí)C 。
C 陷阱與缺陷
作者以自己1985年在Bell實(shí)驗(yàn)室時(shí)發(fā)表的一篇論文為基礎(chǔ),結(jié)合自己的工作經(jīng)驗(yàn)擴(kuò)展成為這本對(duì)C程序員具有珍貴價(jià)值的經(jīng)典著作。寫作本書的出發(fā)點(diǎn)不是要批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。本書適合有一定經(jīng)驗(yàn)的C程序員閱讀學(xué)習(xí),即便你是C編程高手,本書也應(yīng)該成為你的案頭必備書籍。正如書上所說,“本書所揭示的知識(shí),至少能夠幫助你減少C代碼和初級(jí)C 代碼中90%的Bug”,我覺得這并不夸張。
C 語言的科學(xué)和藝術(shù)
《C語言的科學(xué)和藝術(shù)》是一本C語言經(jīng)典教材,強(qiáng)調(diào)軟件工程和優(yōu)秀的程序設(shè)計(jì)風(fēng)格。此外,讀者還可以從書中學(xué)習(xí)到ANSIC的基礎(chǔ)知識(shí),這些內(nèi)容已經(jīng)成為計(jì)算機(jī)行業(yè)的標(biāo)準(zhǔn)。作者的寫作風(fēng)格使得書中深?yuàn)W的概念變得易于理解和引人入勝。這本書集中討論庫和抽象的用法,這是當(dāng)代程序設(shè)計(jì)技術(shù)中最基本的知識(shí)。使用庫來隱藏C語言的復(fù)雜性,更加突出主題,使讀者可以較好地掌握每一個(gè)主題的精髓。然后,進(jìn)一步給出每個(gè)庫的底層實(shí)現(xiàn),較好地展示了庫自身的抽象威力。
C 語言程序設(shè)計(jì)現(xiàn)代方法
《C語言程序設(shè)計(jì)現(xiàn)代方法》最主要的一個(gè)目的就是通過一種“現(xiàn)代方法”來介紹C語言,實(shí)現(xiàn)客觀評(píng)價(jià)C語言、強(qiáng)調(diào)標(biāo)準(zhǔn)化C語言、強(qiáng)調(diào)軟件工程、不再強(qiáng)調(diào)“手工優(yōu)化”、強(qiáng)調(diào)與c 語言的兼容性的目標(biāo)?!禖語言程序設(shè)計(jì)現(xiàn)代方法》分為C語言的基礎(chǔ)特性。C語言的高級(jí)特性、C語言標(biāo)準(zhǔn)庫和參考資料4個(gè)部分。每章都有“問與答”小節(jié),給出一系列與本章內(nèi)容相關(guān)的問題及其答案,此外還包含適量的習(xí)題。
C 語言接口與實(shí)現(xiàn)
《C語言接口與實(shí)現(xiàn):創(chuàng)建可重用軟件的技術(shù)》概念清晰、實(shí)例詳盡,是一本有關(guān)設(shè)計(jì)、實(shí)現(xiàn)和有效使用C語言庫函數(shù),掌握創(chuàng)建可重用C語言軟件模塊技術(shù)的參考指南。書中提供了大量實(shí)例,重在闡述如何用一種與語言無關(guān)的方法將接口設(shè)計(jì)實(shí)現(xiàn)獨(dú)立出來,從而用一種基于接口的設(shè)計(jì)途徑創(chuàng)建可重用的API。
數(shù)據(jù)結(jié)構(gòu)與算法分析——C語言描述
本書是《Data Structures and Algorithm Analysis in C》一書第2版的簡體中譯本。原書曾被評(píng)為20世紀(jì)頂尖的30部計(jì)算機(jī)著作之一,作者M(jìn)ark Allen Weiss在數(shù)據(jù)結(jié)構(gòu)和算法分析方面卓有建樹,他的數(shù)據(jù)結(jié)構(gòu)和算法分析的著作尤其暢銷,并受到廣泛好評(píng).已被世界500余所大學(xué)用作教材。在本書中,作者更加精煉并強(qiáng)化了他對(duì)算法和數(shù)據(jù)結(jié)構(gòu)方面創(chuàng)新的處理方法。通過C程序的實(shí)現(xiàn),著重闡述了抽象數(shù)據(jù)類型的概念,并對(duì)算法的效率、性能和運(yùn)行時(shí)間進(jìn)行了分析。
UNIX環(huán)境高級(jí)編程
《UNIX環(huán)境高級(jí)編程》被譽(yù)為UNIX編程“圣經(jīng)”。經(jīng)典中的經(jīng)典。不過看這本書的前提是你熟悉linux,哪怕不是使用linux接口編程,至少要用過,了解shell,gcc,vim。所以適合有一些基礎(chǔ)的讀者。
Linux程序設(shè)計(jì)
時(shí)至今日,Linux系統(tǒng)發(fā)展越來越成熟,因?yàn)榫邆淇缙脚_(tái)、開源、支持眾多應(yīng)用軟件和網(wǎng)絡(luò)協(xié)議等優(yōu)點(diǎn),它得到了各大主流軟硬件廠商的支持,也成為廣大程序設(shè)計(jì)人員理想的開發(fā)平臺(tái)。本書是Linux程序設(shè)計(jì)領(lǐng)域的經(jīng)典名著,以簡單易懂、內(nèi)容全面和示例豐富而受到廣泛好評(píng)。中文版前兩版出版后,在國內(nèi)的Linux愛好者和程序員中也引起了強(qiáng)烈反響,這一熱潮一直持續(xù)至今。
免責(zé)聲明:本文素材來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請(qǐng)與我聯(lián)系刪除。
------------ END ------------