日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 嵌入式微處理器
[導讀]學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習并精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什么捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經(jīng)歷艱苦的過程。


學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習并精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什么捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經(jīng)歷艱苦的過程。


一、要讀就讀好書,否則不如不讀


所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。


大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據(jù)說發(fā)行量有超過400萬,據(jù)我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業(yè)的學生的,而是給那些需要考計算機等級考試的其它專業(yè)學生看的。這本書的主要缺點是:例子程序非常不專業(yè),不能教給你程序設計應該掌握的思考方式;程序風格相當?shù)夭缓?,會讓你養(yǎng)成亂寫代碼的惡習;錯誤太多,曾經(jīng)有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以百度一下:)


Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很多內容都已過時,和現(xiàn)在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的?!禖語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數(shù)C標準庫函數(shù)的細節(jié),算得上是最好的標準C語言的工具書。順便提一句,最新的《C程序設計語言》是根據(jù)C89標準修訂的,而《C語言參考手冊》描述的是C99標準,二者可能會有些出入,建議按照C99標準學習。還有一本《C和指針》,寫得也是相當?shù)夭诲e,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書并不十分適合初學者,如果你曾經(jīng)學過C語言,有那么一些C語言的基礎但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。


如果你已經(jīng)啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完并能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。


切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然后再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。


二、Unix/Linux還是Windows,這是個很大的問題


不同的編程環(huán)境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛Makefile與控制臺。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認為Unix的環(huán)境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統(tǒng),似乎有點不劃算。


對于一個只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注于C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。


所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環(huán)境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今后你一定要轉向Unix環(huán)境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持并不好,而Dev C++使用gcc編譯器,對C99的標準都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環(huán)境,這是相當不可取的,原因其一是TC 2.0對C標準幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過于復雜了)。


等你學完一本C語言的教材,你一定要轉向Unix平臺繼續(xù)學習,幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數(shù)的聯(lián)機手冊,還可以看到最優(yōu)秀的代碼風格(說到代碼風格,我會專門寫一篇文章詳細敘述)。


歸結起來就是一句話:初學C語言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準備向“高手”方向努力時,請先轉向Unix平臺。


三、萬事俱備,你就是東風


書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經(jīng)具備??赐昵把裕€要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。


學習C語言,必需注意每一個細節(jié),書上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要“創(chuàng)造”一些例子,比如學習運算符優(yōu)先級的時候,可以寫幾個相同的表達式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應該仔細地歸類保存,并且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。


例子之后就是習題了,我建議初學者把所有的習題都獨立做一遍,然后對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。


也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。


仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。


寫到最后,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優(yōu)秀的代碼風格。


-END-


|?整理文章為傳播相關技術,版權歸原作者所有?|

|?如有侵權,請聯(lián)系刪除?|


【1】一位大學生講述代碼辛酸史:我是何時開始突飛猛進的

【2】26歲當上985博導,電子科技大學這位姐姐厲害了!

【3】2020 中國高校畢業(yè)生月薪排名

【4】大佬故事:初中開始學編程,大學畢業(yè)后直接進微軟...

【5】中科院大學本科生9個月成功設計出64位處理器:已成功流片




免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

全球嵌入式技術領域的年度盛會2026嵌入式世界展(Embedded World 2026,簡稱EW26)于3月10日至12日在德國紐倫堡成功舉辦。作為物聯(lián)網(wǎng)和邊緣AI領域的領先企業(yè),Silicon Labs(亦稱“芯科科...

關鍵字: 物聯(lián)網(wǎng) 邊緣AI 嵌入式

3月10日至12日,2026年嵌入式世界展(Embedded World 2026,簡稱EW26)在德國紐倫堡展覽中心成功舉辦。作為領先的邊緣AI與智能音頻等媒體處理技術和芯片解決方案提供商,XMOS以沉浸式演示與技術交...

關鍵字: 邊緣AI 智能音頻 嵌入式

在嵌入式系統(tǒng)開發(fā)中,SoC(System on Chip)的多樣性始終是橫亙在開發(fā)者面前的難題。以某工業(yè)物聯(lián)網(wǎng)網(wǎng)關項目為例,其需同時支持NXP i.MX8M、Rockchip RK3566和Allwinner H616三...

關鍵字: Platform Driver模型 嵌入式

在高性能網(wǎng)絡編程領域,事件驅動模型以其高效的I/O多路復用能力成為主流范式。不同于傳統(tǒng)的多線程/多進程阻塞模型,事件驅動通過單一線程監(jiān)聽多個文件描述符的狀態(tài)變化,以非阻塞方式處理I/O事件,顯著減少了上下文切換開銷和資源...

關鍵字: 事件驅動 C語言

在非易失性存儲器領域,EEPROM(電可擦除可編程只讀存儲器)曾長期占據(jù)主流地位,廣泛應用于各類電子設備的參數(shù)存儲、日志記錄等場景。但隨著工業(yè)控制、汽車電子、醫(yī)療設備等領域對存儲性能提出更高要求,F(xiàn)RAM(鐵電隨機存取存...

關鍵字: 存儲器 可編程 嵌入式

康佳特將aReady.COM擴展至Arm架構模塊,基于恩智浦i.MX 95處理器打造應用就緒的軟硬件構建模塊,集成操作系統(tǒng)、系統(tǒng)整合與IoT連接能力,賦能高價值應用快速落地

關鍵字: 處理器 IoT 嵌入式

3月12日,2026年中國家電及消費電子博覽會(以下簡稱:AWE 2026)在上海盛大開幕。展會現(xiàn)場,場景化、系統(tǒng)化、一體化的家電解決方案成為行業(yè)焦點,消費者對家電的關注也已從基礎的尺寸匹配,延伸至對“空間秩序感”和“視...

關鍵字: 消費電子 蒸烤箱 嵌入式

超高效NPU IP在資源受限設備中推進邊緣AI,因而獲得認可

關鍵字: 人工智能 嵌入式 NPU

上海2026年3月12日 /美通社/ -- 3月12日,2026中國家電及消費電子博覽會(AWE 2026)在上海新國際博覽中心和東方樞紐國際商務合作區(qū)展區(qū)正式啟幕。本屆展會以"AI科技?慧享未來"為...

關鍵字: 西門子 博世 嵌入式 洗碗機
關閉