• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構(gòu)主頁 > 培訓(xùn)資料 > 嵌入式開發(fā):從C到C++過渡的3個原因
機構(gòu)主頁 > 培訓(xùn)資料>嵌入式開發(fā):從C到C++過渡的3個原因

嵌入式開發(fā):從C到C++過渡的3個原因

來源:廣州達內(nèi)教育        時間:2023-05-30        熱度:25℃        返回列表

  幾十年來,嵌入式開發(fā)人員一直在爭論他們是否應(yīng)該使用C或C++。大多數(shù)情況下,微控制器制造商提供的軟件都是用C語言編寫的,事實上,根據(jù)2019年嵌入式市場調(diào)查,56%的嵌入式軟件是用C語言編寫的。然而,C++已經(jīng)逐漸普及,大約23%的新嵌入式軟件項目都是用C++編寫的。隨著C接近第五十周年,現(xiàn)在可能是開始從C到C++的過渡時間了。以下是開發(fā)人員應(yīng)該考慮改變的三個原因。


  原因1:改進了體系結(jié)構(gòu)實現(xiàn)


  C編程語言確實通過函數(shù)指針為開發(fā)人員提供了封裝和一些基本的多態(tài)性功能。然而,C實際上是一種過程語言,不需要額外的努力就不能提供諸如繼承或組合之類的機制。這會使系統(tǒng)的總體架構(gòu)設(shè)計不太理想,從而影響軟件的重用和維護方式,甚至限制其靈活性。


  C++為開發(fā)人員提供了實現(xiàn)真正面向?qū)ο笤O(shè)計模式的能力,開發(fā)了真正的抽象,并實現(xiàn)了設(shè)計模式,這些模式不僅可以從一個應(yīng)用程序重用到下一個應(yīng)用程序,而且還可以提高架構(gòu)的靈活性。這允許軟件被重用,這反過來又可以加快產(chǎn)品開發(fā),縮短客戶機應(yīng)用程序的定制時間,以及許多其他優(yōu)勢。


  原因2:C++是一種不斷發(fā)展的現(xiàn)代語言


  在當(dāng)今復(fù)雜而創(chuàng)新的開發(fā)環(huán)境中,嵌入式開發(fā)人員不僅需要尖端的硬件解決方案,還需要尖端的軟件和語言解決方案。這意味著用于編寫軟件的語言必須是最新的,以便為開發(fā)人員提供實現(xiàn)其系統(tǒng)所需的最新工具。C語言的上一次更新是在2018年,聽起來好像是最近更新的。但是,如果你看一下標準,沒有添加新功能,唯一的變化是修復(fù)了2011年發(fā)布的上一版本的問題!是的,修訂后的標準花了七年的時間來解決上一個標準的問題!


  看C++,標準委員會承諾每三年更新一次標準!與C語言不同的是,新的修訂版不僅僅是bug修復(fù),而是為該語言添加了新的特性和功能,使其成為最新的語言,并提供與其他語言(如Python)競爭所需的工具。新標準甚至刪除了不推薦使用的功能,如三角圖。




  原因3:C++是一種更豐富的語言


  直到3-4年前,我為微控制器編寫的大多數(shù)嵌入式軟件都使用C編程語言。C++總是提供比C更豐富的特征集,但在那個時候編譯器似乎已經(jīng)達到編譯代碼是等效的或更好的點。那時我開始潛心學(xué)習(xí)C++語言,發(fā)現(xiàn)語言變得多么豐富,還有更多的東西讓我學(xué)習(xí)語言。C++允許嵌入式開發(fā)人員利用以下特性:


  模板–允許獨立于任何特定類型編寫代碼


  動態(tài)多態(tài)性–允許在運行時分配實現(xiàn)


  異常處理–捕獲錯誤(對任何C開發(fā)人員來說都是驚人的)


  編譯時靜態(tài)if語句


  虛擬函數(shù)


  這些只是幾個例子,還有更多!所有這些工具使嵌入式系統(tǒng)的生活編程變得更容易。


  結(jié)論


  C++是一種現(xiàn)代的、進化的語言,C語言看起來是靜態(tài)的,進化得慢得多。隨著嵌入式開發(fā)人員在其系統(tǒng)中面臨日益增加的復(fù)雜性,他們需要一種允許他們靈活并最大限度地重用的語言。許多“舊時代”的抱怨不再適用于C++,尤其是C++編譯器已經(jīng)變得多么高效。如果有時間開始轉(zhuǎn)換到C++,這很可能就是它。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部