日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

為何要學(xué)習(xí)C語言, 以及如何學(xué)習(xí)C語言

 本明書館 2019-01-27

有關(guān)為何要學(xué)習(xí)C語言以及如何學(xué)習(xí)C語言這個(gè)話題,可以說和“一千個(gè)讀者就有一千個(gè)哈姆雷特”一樣,每個(gè)人都有每個(gè)人的見解和學(xué)習(xí)方式。回想起10年前的那個(gè)暑假,自己跟著某天翔七天學(xué)會(huì)單片機(jī)的視頻教程一步一步學(xué)習(xí)C語言、單片機(jī)的日子,不由得感慨萬千,想起自己在開發(fā)路上走過的路,坎坎坷坷。。。

廢話說多了,,,有關(guān)本文的主題,個(gè)人感覺,這個(gè)首先該看自己的定位在哪,不同的目的會(huì)有不同的過程,一般學(xué)習(xí)C語言分為以下幾種情況:

1.學(xué)校開設(shè)這門課程,學(xué)習(xí)C語言僅僅是為了應(yīng)付考試。如果是這種情況,跟著老師步子走,把課后題多做一些,多上機(jī)練一練,考個(gè)高分還是不成問題的。

2.業(yè)余編程,把C語言當(dāng)成一種愛好。如果是這種情況,可以較為深入的學(xué)習(xí)一下C語言,多看一些源碼,看看別人怎么用的,然后多多將自己的實(shí)際問題轉(zhuǎn)化成C代碼實(shí)現(xiàn)一下就OK了。

3.要從事其它語言開發(fā),把C語言當(dāng)成一種敲門磚。這種情況比較復(fù)雜,因?yàn)槲以?jīng)走過這條路子,14年曾經(jīng)嘗試著轉(zhuǎn)純軟件開發(fā),后來感覺那種日子不如搞軟硬結(jié)合來的爽快、成就感強(qiáng),就放棄了。抱這種目的的,也分情況,如果是從事web開發(fā)這個(gè)方向,學(xué)不學(xué)C語言作用都不是很大,尤其是從事前端開發(fā),有沒有C基礎(chǔ),幾乎對(duì)前端的學(xué)習(xí)沒有一點(diǎn)幫助。如果是從事后端開發(fā),有C基礎(chǔ)肯定比沒有好點(diǎn),但是這種付出不成比例,C指針那塊太耗時(shí)、耗力,建議直接上后端開發(fā)語言(比如Java、php等)即可。

4.嵌入式開發(fā)。這種情況,如果純裸機(jī)開發(fā),就掌握了C基礎(chǔ)以后,多看別人的代碼,多學(xué)編程思路,多使用結(jié)構(gòu)體封裝,多使用模塊化編程,便于代碼移植、復(fù)用,多從項(xiàng)目整個(gè)框架的層面考慮就可以了。如果是開發(fā)比較輕量級(jí)的系統(tǒng),比如FreeRTOS、uCOS等,可以掌握C基礎(chǔ)以后,直接上源碼即可,多研究下這些系統(tǒng)的功能是如何實(shí)現(xiàn)的,掌握指針與數(shù)組、函數(shù)的關(guān)系,然后多加分析、練習(xí)就差不多了。這種情況,建議當(dāng)你感覺到?jīng)]什么進(jìn)步的時(shí)候,找一個(gè)固定平臺(tái)學(xué)習(xí)一下匯編,推薦ARM平臺(tái)的匯編,因?yàn)锳RM匯編標(biāo)準(zhǔn)化比較高,而且將來一定是ARM的天下,現(xiàn)在Cortex-M0核的MCU已經(jīng)2塊錢以下了,低端到高端產(chǎn)品線超級(jí)豐富,選擇性太好了,還猶豫啥呢?!對(duì)照著指令手冊(cè),慢慢分析下自己的C源碼產(chǎn)生的匯編是什么樣子、該如何優(yōu)化,看下自己的C代碼的變量、函數(shù)等內(nèi)容的地址是怎么分布的、字節(jié)對(duì)齊有什么效果等等,調(diào)試的時(shí)候多借助下映射、鏈接文件,會(huì)極大提高調(diào)試效率。這個(gè)階段,需要熟練掌握、隨意應(yīng)用指針與結(jié)構(gòu)體、數(shù)組、函數(shù)的轉(zhuǎn)化的時(shí)候,就說明已經(jīng)可以結(jié)束了。

5.安全、內(nèi)核、驅(qū)動(dòng)開發(fā)。這種情況,就需要深入學(xué)習(xí)一下C語言了,不僅要對(duì)C語言的語言特性了如指掌,也要對(duì)C代碼轉(zhuǎn)化為匯編以后的行為、特性進(jìn)行分析,這種能力越熟練越好。我本人也是一直在內(nèi)核、驅(qū)動(dòng)兩方面折騰,這方面還算比較了解,可以多說一點(diǎn)我的學(xué)習(xí)過程。首先我們要做好長(zhǎng)期吃苦的準(zhǔn)備,但是這種苦是值得的,我們要明白,不吃學(xué)習(xí)的苦就得吃生活的苦,而生活的苦比學(xué)習(xí)的苦苦太多,在該吃苦的年紀(jì),就應(yīng)該多吃點(diǎn)苦,既然這樣,那我們?yōu)楹尾欢喑渣c(diǎn)學(xué)習(xí)的苦,少吃點(diǎn)生活的苦呢。這個(gè)階段是建立在第4階段之上的,要想從事這類開發(fā),不僅要熟練掌握操作系統(tǒng)原理這種宏觀、原理層面的技術(shù),也要對(duì)C語言、匯編、工具鏈都有所了解,而且,這些內(nèi)容掌握越多越好、越深入越好,我們要掌握控制工具鏈對(duì)自己源碼(可能不僅僅有C程序)“加工”的過程,還要考慮這種C源碼會(huì)產(chǎn)生何種匯編代碼,會(huì)導(dǎo)致機(jī)器做出什么樣的行為。這個(gè)階段,當(dāng)你可以使用工具鏈將程序的各個(gè)段按自己意愿進(jìn)行分布、排列;當(dāng)給你一段可執(zhí)行程序代碼,你可以使用工具鏈導(dǎo)出反匯編文件,進(jìn)而分析出它的功能的時(shí)候,就差不多可以了~

總之,學(xué)習(xí)是一個(gè)反復(fù)的過程,嵌入式開發(fā)知識(shí)面廣、體系雜,要想成為高手,就需要時(shí)刻保持一顆學(xué)習(xí)的心。本號(hào)接下來會(huì)連載《隨時(shí)隨地學(xué)習(xí)C語言》系列,將本人在嵌入式、內(nèi)核及驅(qū)動(dòng)開發(fā)路上的經(jīng)驗(yàn)、感悟及心得與你分享,絕對(duì)干貨滿滿,趕緊上車吧~

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多
    熱門閱讀 換一換