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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 程序喵大人
[導(dǎo)讀]經(jīng)常有一些小伙伴問(wèn)我有沒(méi)有C學(xué)習(xí)路線的相關(guān)文章分享一下,對(duì)此我特意整理了一張C學(xué)習(xí)路線圖分享給大家!直接看圖:高清圖片,請(qǐng)?zhí)砑映绦蜻魑⑿奴@取圖中我分了11個(gè)板塊:C語(yǔ)言入門(mén)基礎(chǔ)知識(shí)C基礎(chǔ)C進(jìn)階C新特性操作系統(tǒng)編譯鏈接C項(xiàng)目推薦工具編碼規(guī)范推薦網(wǎng)站推薦書(shū)籍具體如下:C語(yǔ)言入門(mén)基礎(chǔ)知...

經(jīng)常有一些小伙伴問(wèn)我有沒(méi)有C 學(xué)習(xí)路線的相關(guān)文章分享一下,對(duì)此我特意整理了一張C 學(xué)習(xí)路線圖分享給大家!


直接看圖:

高清圖片,請(qǐng)?zhí)砑映绦蜻魑⑿奴@取



圖中我分了11個(gè)板塊:

  • C語(yǔ)言入門(mén)基礎(chǔ)知識(shí)

  • C 基礎(chǔ)

  • C 進(jìn)階

  • C 新特性

  • 操作系統(tǒng)

  • 編譯鏈接

  • C 項(xiàng)目

  • 推薦工具

  • 編碼規(guī)范

  • 推薦網(wǎng)站

  • 推薦書(shū)籍


具體如下:


C語(yǔ)言入門(mén)基礎(chǔ)知識(shí)

使用C 不可避免的需要用到C語(yǔ)言,所以C語(yǔ)言的基礎(chǔ)知識(shí)我們也需要了解,主要有:

  • 數(shù)據(jù)類(lèi)型

  • 流程控制

  • 函數(shù)

  • 指針

  • 內(nèi)存布局

  • 結(jié)構(gòu)體、共用體

  • 文件操作

  • 回調(diào)函數(shù)


C 基礎(chǔ)

這里整理了一些C 必須要知道的基礎(chǔ)知識(shí),主要有:

  • constexpr

  • namespace

  • 引用與指針的區(qū)別

  • new/delete、new[]/delete[]

  • C/C 混合編程

  • 類(lèi)的封裝

  • class與struct的區(qū)別

  • 面向?qū)ο缶幊趟枷?/span>

  • 構(gòu)造和析構(gòu)

  • 拷貝構(gòu)造、移動(dòng)構(gòu)造

  • 賦值構(gòu)造、移動(dòng)賦值

  • 四種強(qiáng)制類(lèi)型轉(zhuǎn)換

  • 靜態(tài)成員

  • 對(duì)象管理

  • 函數(shù)重載

  • 友元函數(shù)與友元類(lèi)

  • 操作符重載

  • 繼承與多繼承

  • 多態(tài)

  • 虛函數(shù)與抽象類(lèi)

  • 函數(shù)模板與類(lèi)模板

  • 輸入輸出類(lèi)

  • 異常處理


C 進(jìn)階

我把下面的一些知識(shí)歸為進(jìn)階知識(shí)點(diǎn),可能你學(xué)完了也沒(méi)進(jìn)階到哪里去,但是也是進(jìn)階必備知識(shí)點(diǎn),主要有:

  • new/delete、new[]/delete[]為什么要配對(duì)使用

  • RAII特性

  • 智能指針

  • 內(nèi)存泄漏的調(diào)試

  • STL

    ???vector

  • resize

  • reserve

  • capacity

  • clear

  • swap

  • at

? ? ? ? ???array

? ? ? ?????map

? ? ? ?????unordered_map

? ? ? ?????list

? ? ? ?????tuple


C 新特性

現(xiàn)在C 開(kāi)發(fā)基本上都會(huì)使用C 11,而且C 新特性在面試時(shí)也是面試官常問(wèn)的知識(shí)點(diǎn),這里我總結(jié)了一些必須要知道的C 新特性:

  • auto/decltype

  • 列表初始化

  • 左值、右值、左值引用、右值引用

  • 移動(dòng)語(yǔ)義、完美轉(zhuǎn)發(fā)

  • std::function、std::bind

  • lambda表達(dá)式

  • std::thread

  • std::lock_guard、std::unique_lock

  • std::shared_ptr、std::unique_ptr

  • std::mutex

  • 原子操作

  • enum class

  • 條件變量

  • nullptr

  • chrono


操作系統(tǒng)

操作系統(tǒng)非常重要,要學(xué)好C 就一定要打好操作系統(tǒng)的基礎(chǔ),但操作系統(tǒng)我們也沒(méi)必要全都鉆到細(xì)節(jié)里去,重點(diǎn)攻克下面幾個(gè)知識(shí)點(diǎn)即可:

  • 進(jìn)程與線程的區(qū)別

  • 進(jìn)程管理與調(diào)度

  • 內(nèi)存管理

  • 并發(fā)與同步

  • 文件I/O


工具

這里推薦下我在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)用到的幾個(gè)工具:

  • 調(diào)試工具:gdb、lldb

  • 構(gòu)建工具:Cmake、bazel

  • 靜態(tài)代碼檢測(cè)工具:cppcheck、Clang-Tidy、SonarQube

  • 內(nèi)存檢測(cè)工具:valgrind、ASan

  • profiling工具:gperftools、perf


編碼規(guī)范

使用一門(mén)語(yǔ)言一定要了解一下它常用的編碼規(guī)范,有了編碼規(guī)范代碼寫(xiě)的才能稍微漂亮一點(diǎn),目前多數(shù)C 開(kāi)發(fā)團(tuán)隊(duì)都會(huì)參考Google編碼規(guī)范來(lái)寫(xiě)代碼。


編譯鏈接知識(shí)點(diǎn)

學(xué)習(xí)C 一定要了解一些編譯和鏈接的知識(shí),如何連一些常見(jiàn)的編譯鏈接錯(cuò)誤都解決不了,那怎么能是個(gè)合格的C 程序員呢?

  • 預(yù)處理、編譯、匯編、鏈接

  • 靜態(tài)鏈接

  • 動(dòng)態(tài)鏈接

  • Debug與Release的區(qū)別


C 項(xiàng)目

光學(xué)開(kāi)車(chē)不行,你得上路;光學(xué)理論知識(shí)不行,得實(shí)踐呀!



可能普通學(xué)生不知道做個(gè)什么項(xiàng)目?我有個(gè)想法,可不可以做這樣一個(gè)小東西,輸入是一段人物視頻,輸出也是一段視頻,但是輸出的視頻中會(huì)對(duì)人物做一些特效處理,比如畫(huà)一個(gè)人臉框,添加一些字幕,貼一個(gè)動(dòng)畫(huà)貼紙,貼個(gè)濾鏡等。


在擼項(xiàng)目的過(guò)程中,應(yīng)該會(huì)遇到很多問(wèn)題:

  • 如何解碼視頻?是不是要引入個(gè)第三方庫(kù)?怎么才能在工程中接入第三方庫(kù)?如何編譯,如何鏈接?

  • 如果編碼視頻?是不是又要引入個(gè)第三方庫(kù)?

  • 如何畫(huà)一個(gè)人臉框?是不是需要先識(shí)別到人臉?怎么識(shí)別人臉?是不是要引入三方人臉識(shí)別庫(kù)?

  • 如何添加字幕?如何添加動(dòng)畫(huà)?如何貼個(gè)濾鏡呢?鏈接個(gè)ffmpeg?


你還會(huì)遇到一些問(wèn)題:


如何制定這個(gè)項(xiàng)目的編碼規(guī)范呢?使用什么編碼風(fēng)格,你可能需要Google編碼規(guī)范。

項(xiàng)目最好統(tǒng)一使用C 11新特性,可以看這個(gè):《c 11新特性,所有知識(shí)點(diǎn)都在這了!》


如何設(shè)計(jì)這個(gè)項(xiàng)目的架構(gòu)呢?這是個(gè)技術(shù)活,也是個(gè)經(jīng)驗(yàn)活,你可以參考參考別的項(xiàng)目?或者自底向下,走一步看一步,哪個(gè)模塊的代碼寫(xiě)完后看著不順眼了重構(gòu)一波,一般我看自己兩個(gè)月前寫(xiě)的那些代碼都會(huì)感到別扭,這時(shí)就可以考慮考慮學(xué)習(xí)一波設(shè)計(jì)模式!


項(xiàng)目的功能越來(lái)越多,邏輯越來(lái)越復(fù)雜,bug會(huì)越來(lái)越多,如何調(diào)試這些代碼?你可能需要看看這個(gè):《我是怎么調(diào)試代碼的?》


項(xiàng)目功能很多,這時(shí)你會(huì)接觸到多線程,同步,死鎖等概念,如何設(shè)計(jì)多線程,使用線程池嗎?如何做好同步,解決數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題,是使用原子操作,還是使用互斥鎖等。使用鎖的過(guò)程中如何避免死鎖,如果出現(xiàn)了死鎖怎么定位呢?C 線程池的實(shí)現(xiàn)之格式修訂版


功能增多,性能肯定越來(lái)越差,如何做好性能優(yōu)化,如何更好的管理內(nèi)存?使用什么工具來(lái)做性能分析呢?可能需要看看這個(gè)《這么多性能調(diào)優(yōu)工具,看看你知道幾個(gè)?》


相信擼完這個(gè)項(xiàng)目后,你的C 也可以算作入門(mén)了吧!


再推薦幾個(gè)我常用的網(wǎng)站:

  • https://cppinsights.io/

  • https://godbolt.org/

  • http://www.sunistudio.com/cppfaq/


再推薦基本個(gè)人認(rèn)為比較優(yōu)質(zhì)的書(shū)籍:

  • 《C Primer Plus》

  • 《Effective C 》

  • 《Effective STL》

  • 《Effective Modern C 》

  • 《STL源碼剖析》

  • 《深入理解計(jì)算機(jī)系統(tǒng)》

  • 《現(xiàn)代操作系統(tǒng)》


再引用在一個(gè)論壇中看到的C 學(xué)習(xí)路線,看著蠻有道理推薦給大家:

我提供一條線吧,針對(duì)C/C 以及針對(duì)LINUX后端服務(wù)器開(kāi)發(fā)和分布式系統(tǒng)開(kāi)發(fā)這條線:

0. 斯坦福的《編程范式》課程百度一下很多資源

1.《c primer》1個(gè)月刷完第一遍做課后習(xí)題答案看《C primer習(xí)題集》

2.《EffectiveC 》1個(gè)月刷完第一遍

3.(可選)《CSAPP》的Tinyweb瀏覽器實(shí)驗(yàn)(這個(gè)其實(shí)更多是C但是還是建議做一下原因后面說(shuō))(1個(gè)月)

4.跟MIT68242012年spring的分布式系統(tǒng)課程做完它的lab學(xué)習(xí)其代碼課程主頁(yè):https://pdoscsailmitedu/archive/6824-2012/indexhtml(2個(gè)半月)

4a. (可選)拋棄lab中助教提供的框架代碼自己實(shí)現(xiàn)一套完整的tinydistributedfilesystem(2個(gè)月)

5. 陳碩大牛的《Linux多線程服務(wù)端編程使用muduoC 網(wǎng)絡(luò)庫(kù)》刷書(shū) 練習(xí)認(rèn)認(rèn)真真的分析學(xué)習(xí)muduo網(wǎng)絡(luò)庫(kù)(2個(gè)月)

6. 第3、第4、第5步中遇到的問(wèn)題去針對(duì)性看《C primer》和《EffectiveC 》中相對(duì)應(yīng)的章節(jié)

7. 學(xué)習(xí)過(guò)程中好好利用GOOGLE、STACKOVERFLOW

好啦到這里大概C 理論算入門(mén)再往深一點(diǎn)點(diǎn)的水平也有一定的C 的代碼量啦個(gè)人感覺(jué)刷刷題找工作也沒(méi)啥問(wèn)題了大概的時(shí)間列出來(lái)了好好評(píng)估下吧

說(shuō)一句哈真要走C 這條線的話就別把自己局限到C 中啦也把C給學(xué)啦看看《APUE》、K
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉