嵌入式軟件開(kāi)發(fā)為什么選擇C語(yǔ)言?
C語(yǔ)言這門(mén)編程語(yǔ)言,一直以來(lái)可能都被一些剛?cè)腴T(mén)的小白小看了,其實(shí)這門(mén)語(yǔ)言一點(diǎn)都不一般!
在上月TIOBE 編程語(yǔ)言排行榜單上面 ,C語(yǔ)言排行第二?。
地址:https://www.tiobe.com/tiobe-index/

回到主題,為什么嵌入式軟件開(kāi)發(fā)選擇C語(yǔ)言?
除了我們看到的C語(yǔ)言很火之外,其實(shí)C語(yǔ)言是有一些本質(zhì)的原因。
C語(yǔ)言特點(diǎn)
C語(yǔ)言相對(duì)JAVA、C#這些語(yǔ)言,是一種“輕量級(jí)”的編程語(yǔ)言。
1.C語(yǔ)言有出色的可移植性?,能在多種不同體系結(jié)構(gòu)的軟/硬平臺(tái)上運(yùn)行。
2.簡(jiǎn)潔緊湊,使用靈活的語(yǔ)法機(jī)制?,并能直接訪問(wèn)硬件。
能夠直接訪問(wèn)硬件的語(yǔ)言有匯編和C語(yǔ)言,匯編屬于低級(jí)語(yǔ)言,難以完成一些復(fù)雜的功能,但是匯編比C語(yǔ)言訪問(wèn)硬件的效率更高。所以,一般將硬件初始化的工作交給匯編,比較復(fù)雜的操作交給C語(yǔ)言。
3.C語(yǔ)言具有很高的運(yùn)行效率。
C語(yǔ)言直接操作底層寄存器,相比?JAVA、C#?多層封裝,使其具有高效的運(yùn)行效率。

開(kāi)發(fā)工具
開(kāi)發(fā)工具在嵌入式軟件開(kāi)發(fā)中有重要的地位,大部分嵌入式軟件開(kāi)發(fā)工具都是針對(duì)C/C++編程語(yǔ)言。
你會(huì)發(fā)現(xiàn)很多嵌入式C相關(guān)的工具鏈,而很少有C#、JAVA、PHP這些用于嵌入式的工具鏈。
在單片機(jī)領(lǐng)域,集成開(kāi)發(fā)環(huán)境更是多的數(shù)不過(guò)來(lái),?Keil?、??IAR?、??Embedded Studio?...等很多。
面向過(guò)程VS面向?qū)ο?/h1>
C語(yǔ)言是高級(jí)語(yǔ)言中的低級(jí)語(yǔ)言,具有高級(jí)編程語(yǔ)言的特性,也具有低級(jí)語(yǔ)言的優(yōu)點(diǎn)。
所有,你知道為啥C語(yǔ)言是一種“面向過(guò)程”的編程語(yǔ)言了吧?
1.面向過(guò)程
面向過(guò)程(Procedure Oriented)是一種以過(guò)程為中心的編程思想?!懊嫦蜻^(guò)程”也可稱(chēng)之為“面向記錄”編程思想,他們不支持豐富的“面向?qū)ο蟆碧匦?比如繼承、多態(tài)),并且它們不允許混合持久化狀態(tài)和與邏輯。
面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。面向過(guò)程其實(shí)是最為實(shí)際的一種思考方式,就算是面向?qū)ο蟮姆椒ㄒ彩呛忻嫦蜻^(guò)程的思想。?
可以說(shuō)面向過(guò)程是一種基礎(chǔ)的方法,它考慮的是實(shí)際地實(shí)現(xiàn)。一般的面向過(guò)程是從上往下步步求精,所以?面向過(guò)程最重要的是模塊化的思想方法?。

2.面向?qū)ο?/strong>
面向?qū)ο蟮姆治龈鶕?jù)抽象關(guān)鍵的問(wèn)題域來(lái)分解系統(tǒng)。面向?qū)ο蟮脑O(shè)計(jì)是一種提供符號(hào)設(shè)計(jì)系統(tǒng)的面向?qū)ο蟮膶?shí)現(xiàn)過(guò)程,它用非常接近實(shí)際領(lǐng)域術(shù)語(yǔ)的方法把系統(tǒng)構(gòu)造成“現(xiàn)實(shí)世界”的對(duì)象。
面向?qū)ο蟪绦蛟O(shè)計(jì)可以看作一種在程序中包含各種獨(dú)立而又互相調(diào)用的對(duì)象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計(jì)主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對(duì)電腦下達(dá)的指令。面向?qū)ο蟪绦蛟O(shè)計(jì)中的每一個(gè)對(duì)象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對(duì)象,因此它們都可以被看作一個(gè)小型的“機(jī)器”,即對(duì)象。
3.面向過(guò)程和面向?qū)ο蟮膮^(qū)別
以一個(gè)人從A地到B地為例:
面向過(guò)程就是需要規(guī)劃路線?,了解路況,自己做好一系列的準(zhǔn)備。
面向?qū)ο缶褪亲弦惠v出租車(chē)?,告訴司機(jī)我要去B地就可以了,不用關(guān)心其他的事情。
希望對(duì)你有幫助!
——————
另外,對(duì)于編程學(xué)習(xí)的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
C語(yǔ)言零基礎(chǔ)入門(mén)教程(83集全)
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書(shū)籍分享:

粉絲編程交流:
