2019年,?EE Times?曾對嵌入式項目中的編程語言做過一個調(diào)查。其中,C語言以56%的占比穩(wěn)居第一,C++以23%緊隨其后。手頭的嵌入式開發(fā)項目也是用的C++,于是想總結(jié)一下嵌入式中C++的使用心得。


在嵌入式開發(fā)中,按照應(yīng)用領(lǐng)域可以簡單劃分為:單片機 MCU,Linux 驅(qū)動/應(yīng)用。在嵌入式Linux開發(fā)中,C++已經(jīng)是絕對的應(yīng)用層主力之一。本文所針對的應(yīng)用領(lǐng)域主要是單片機MCU開發(fā)。
1. 為什么要用C++取代C呢?C++是C的超集,有許多C語言不具備的優(yōu)勢:
當(dāng)然,以上方法大部分都可以通過C來實現(xiàn),比如C++的類可以用C的函數(shù)指針來實現(xiàn),但是大量的函數(shù)指針不僅會降低代碼的可讀性,也會極大地增加代碼量。C++則可以在編譯器層面有效改善這種情況,主流單片機的編譯器也已經(jīng)兼容C++。
2. 不適用于嵌入式的C++特性C++特性更多,功能更強大,但是受到單片機資源和應(yīng)用場景的限制,并不是所有特性都適用。以下項目尤其需要特別注意:
一直有一種聲音認(rèn)為C++在嵌入式系統(tǒng)中比較低效,無論是速度還是大小,這到底是事實還是偏見?下邊我們將C++的特性,與C語言實現(xiàn)效率進行對比,按照性價比由高到低可以分為三個等級:
將C++的特性對號入座,我們便有了下邊這張圖。其中,Templates 模板比較特殊,性價比的高低取決于具體的應(yīng)用。在我們的嵌入式項目中,就是用Templates實現(xiàn)的底層代碼,后期可以單獨寫一個例子。

那么,如何從C逐步過渡到C++呢?有如下參考:
最后,在網(wǎng)上看到很多對比C++與C的文章,十分認(rèn)同一句話——“作為開發(fā)者,編程思想遠遠比語法糖重要的多。C with Class是編程思想的進步,雖然在語法難度上面它不值一提。”
相關(guān)參考:C++在嵌入式中表現(xiàn)如何? - 知乎
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章標(biāo)題:嵌入式開發(fā)也可以用C++?-創(chuàng)新互聯(lián)
本文路徑:http://chinadenli.net/article48/hjehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計、網(wǎng)站維護、網(wǎng)頁設(shè)計公司、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容