欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

嵌入式開發(fā)也可以用C++?-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)建站于2013年成立,先為鹿泉等服務(wù)建站,鹿泉等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為鹿泉企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

在嵌入式開發(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)勢:

  • 面向?qū)ο缶幊烫匦裕軌蛲ㄟ^接口實現(xiàn)底層代碼。簡單說,就是?C with class。
  • 許多C語言不存在的特性:templates,多態(tài),運算符重載等等。
  • 通過接口的方式隱藏底層的實現(xiàn)。
  • 通過將代碼的變化封裝在一個對象上,大限度地減少重復(fù)測試和維護。
  • 由于將一切封裝在功能單元中,可以提高代碼的重復(fù)使用。
  • 更加嚴(yán)格的類型檢查,可以減少bug。

當(dāng)然,以上方法大部分都可以通過C來實現(xiàn),比如C++的類可以用C的函數(shù)指針來實現(xiàn),但是大量的函數(shù)指針不僅會降低代碼的可讀性,也會極大地增加代碼量。C++則可以在編譯器層面有效改善這種情況,主流單片機的編譯器也已經(jīng)兼容C++。

2. 不適用于嵌入式的C++特性

C++特性更多,功能更強大,但是受到單片機資源和應(yīng)用場景的限制,并不是所有特性都適用。以下項目尤其需要特別注意:

  • 開發(fā)成本很高的特性:STL 庫,異常處理,運行時類型信息(RTTI) 。?
  • 由于安全方面的原因,一些特性也是不推薦的。
  • 有時候很難確定你的源代碼和反匯編之間的關(guān)系。
  • 事件驅(qū)動型代碼很難理解和調(diào)試。
3. C++的低效性

一直有一種聲音認(rèn)為C++在嵌入式系統(tǒng)中比較低效,無論是速度還是大小,這到底是事實還是偏見?下邊我們將C++的特性,與C語言實現(xiàn)效率進行對比,按照性價比由高到低可以分為三個等級:

  • 高性價比:沒有額外成本。
  • 中性價比:帶來少量的成本。
  • 低性價比:成本非常高。

將C++的特性對號入座,我們便有了下邊這張圖。其中,Templates 模板比較特殊,性價比的高低取決于具體的應(yīng)用。在我們的嵌入式項目中,就是用Templates實現(xiàn)的底層代碼,后期可以單獨寫一個例子。

那么,如何從C逐步過渡到C++呢?有如下參考:

  • 始終使用一個命名慣例,區(qū)別類型、字段和變量的命名。
  • 注意顯式類型轉(zhuǎn)換,比如從一個通用的類型 void* 或者 int 轉(zhuǎn)換到 int* 或者 enum 時。
  • 為你使用的所有函數(shù)聲明原型。
  • 顯式確定你所用的類型,切勿相信隱式的返回值或變量的類型。
  • C++可以調(diào)用原有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)

h5響應(yīng)式網(wǎng)站建設(shè)