做嵌入式程式設計,為什麼用的是C語言而不是C 呢?

2021-10-10 19:28:49 字數 2564 閱讀 5004

1.前言

幾十年來,嵌入式軟體工程師們一直在爭論是否應該使用c++替代c語言進行開發工作。根據2023年ieee和github的市場調查顯示,微控制器製造商提供的軟體大部分都是由c語言編寫。

事實上,56%的嵌入式軟體是用c語言編寫的。然而,c++已經逐漸普及,大約23%的新嵌入式軟體專案都是用c++編寫的。c語言發展到現在,差不多50年的時間了,現在正是c語言過渡到c++語言成為嵌入式開發主流語言的最佳契機。

對於習慣了用c語言開發的嵌入式程式設計師來說,對c++語言是有一些誤解和偏見的。

(1)c++執行效率低

(2)c++生成的目標**大

(3)c++程式設計非常麻煩

(4)沒有指標概念,操作底層暫存器很複雜

我認為,嵌入式工程師是應該好好去學習一下c++語言開發嵌入式程式的,arm的mbed os中也大量採用了c++程式語言。拒絕接受新的事物,害怕推翻舊有思維,固步自封,這樣才可怕。

嵌入式工程師從c到c++的轉換,需要學習的不僅僅是一門新的語言,而實際上學習的是一種程式設計思維模式。就像剛開始學習嵌入式從裸機**開始,然後慢慢學習rtos或者linux,這不僅僅是接觸新的東西,更是一種思維方式的轉變。學習c++需要理解的是物件導向的思維方式,還有各種設計模式。從而在使用嵌入式開發的過程中,這些東西都是一種會用到的。

下面從三個方面來說說嵌入式開發中採用c++程式設計的好處。

2.引進新的設計模式

c語言在一定程度上為開發人員提供了一系列的封裝函式可以使用,也提供了非常基本的多型的功能。然而c語言實際上是一種面向過程的語言,這種就使得組合和繼承變得十分的困難。這些都會影響到總體設計架構的穩定性。除非是乙個c語言基礎以及做過許多專案的人,才能很好的掌握c語言架構的設計。一般的設計都會讓軟體函式的復用和擴充套件變得極其複雜。

而c++則為開發人員提供了真正物件導向的設計模式,這種抽象的模組,使得程式的耦合性更低。由於引腳了設計模式,所以在專案工程的移植上也十分的方便,這使得軟體的復用性更好,這樣可以加快產品的開發速度,縮短研發週期,降低工作量。

3.c++是一種不斷更新的語言

在如今複雜的開發環境中,隨著時代的發展,越來越多先進的硬體解決方案被提出,所以需要更好用的軟體和語言解決方案,這就意味著程式語言必須是不斷的更新的,不斷為開發人員提供最好的最先進的工具。

我們來看一下c/c++版本的更迭情況:

c語言版本更迭:

c++語言版本更迭:

c++語言的更新與c語言不同的是,c++不僅僅是修復了一些錯誤,更重要的是新增了一些新的特性和工具。而且從更新頻率上來說,c++的更新最近都是大概每三年更新一次。這可以很方便的適應新的系統和硬體平台。

4.c++有著更加豐富的特性

嵌入式程式設計過程中,相比於用c語言,c++有著更多的特性。現在的編譯器已經對程式語言的優化非常的友好了。

c++中也是支援c語言操作的,所以這種方式也很十分容易的從c到c++的過渡。

支援異常處理和錯誤捕捉,這是在嵌入式開發過程中非常高效的

支援虛函式

支援動態型別轉換,多重繼承,多型等。

雖然會相對於c語言來說,會增加一些資源,但對於現在的嵌入式開發來說,多幾kb已經不是什麼問題了,嵌入式上使用c++程式設計卻可以很容易的實現功能。大大提高開發效率。

5.總結

雖然目前來看,做嵌入式程式設計的主流語言還是c語言,但是卻不能迴避乙個事實,在github上搜尋嵌入式的工程的時候,越來越多的工程採用了c++進行程式設計。畢竟在嵌入式語言佔比中也接近1/4的比例了。所以嵌入式開發需要去學習c++程式設計,並理解c++程式設計的思想。隨著時代的進步,處理器的發展,越來越多新的的特性被提出,相信只有與時俱進才能做時代的先鋒。

最後,如果你也想成為程式設計師,想要快速掌握程式設計,這裡為你分享乙個學習企鵝圈子!

程式設計學習書籍:

做嵌入式程式設計,為什麼用的是C語言而不是C 呢?

1.前言 幾十年來,嵌入式軟體工程師們一直在爭論是否應該使用c 替代c語言進行開發工作。根據2019年ieee和github的市場調查顯示,微控制器製造商提供的軟體大部分都是由c語言編寫。事實上,56 的嵌入式軟體是用c語言編寫的。然而,c 已經逐漸普及,大約23 的新嵌入式軟體專案都是用c 編寫的...

嵌入式為什麼選擇用C語言開發

一 為什麼嵌入式開發用語言?因為所有作業系統的核心幾乎都是c語言寫的。c的特點 為什麼用c語言?出色的移植性 移植性高低的判斷?1 乙個軟體從乙個平台切換到另乙個平台,修改的 越少,移植性越好 2 軟體能在不同平台下執行 c語言能適用於不同的硬體平台 微控制器,arm等 能夠訪問硬體 還有什麼語言訪...

嵌入式開發為什麼選擇C語言?

眾所周知,c語言在嵌入式開發中占有十分重要的地位,它們的關係非比尋常。那麼為什麼嵌入式開發會選擇c語言,而不是其他語言呢?嵌入式開發是在作業系統內部做開發的,作業系統所有的核心幾乎都是c語言編寫,如果我們也使用c語言做開發,必定會具備一定的優勢。再者,c語言相較其他的高階程式語言,其所有的特點對於嵌...