十多年前,關于C++何時最終超越C并成為占主導地位的嵌入式系統編程語言,人們一直在爭論和期待。直到今天,C仍然是主導語言。鑒于微控制器硬件的進步,更重要的是,工具鏈和現在可用的優化,現在可能是使用C++的時候了。以下是嵌入式開發人員應該開始考慮在其嵌入式系統中使用C++的幾個原因。
原因 1 – 使用現代面向對象的編程技術
C編程語言是近50年前發明的一種過程語言,它是一門很棒的語言,但它缺乏現代編程語言所擁有的一切,例如
? 封裝
? 繼承
? 多態性
C開發人員有時可以模擬這些基本的面向對象的特性,但它總是被迫的并且需要更多的努力。現代語言自然會使用這些技術,如果使用得當,可以提高代碼的可讀性、重用性和可移植性。在當今復雜的系統中,使用可以從一個應用程序重用到下一個應用程序的類和對象肯定會很好。
原因 2 – 微控制器的編譯器和工具鏈支持
在過去的幾年里,微控制器領域的編譯器和工具鏈對C++的支持一直是工具提供商的重點。檢查一些商業和開源編譯器,你會很快發現編譯器完全支持最新的 C++標準。檢查這些編譯器是否符合最新的C標準,你會很幸運地找到一個甚至支持一些最新特性的編譯器。
除了編譯器支持之外,微控制器制造商開始在他們自己的工具中包含掛鉤,以便嵌入式開發人員能夠輕松開發C++應用程序。
原因 3 – 活躍的標準委員會
C++ 標準的更新頻率遠高于C標準,這些更新不一定只是改進 C++,而是更新功能并添加新功能以跟上行業正在發生的變化。盡管C存在所有問題、歧義和已知問題,但更改、更新和澄清的速度非常緩慢。
原因 4 – 性能和代碼大小
在嵌入式系統中應該使用C還是C++之間的舊爭論中最大的癥結在于性能和代碼大小。開發人員總是抱怨C++代碼比C代碼更大,性能更差。在當今的開發環境中,現代編譯器及其優化器非常好。而且,開發人員可能需要進行一些試驗或將他們的C++語言使用限制為可以保證性能的子集,但老實說,無論如何我們都必須對C做同樣的事情!
結論
C++為嵌入式開發人員提供了開始使用面向對象方法的機會,同時,如有必要,可以繼續使用遺留的C代碼。開始使用C++的原因有很多,繼續使用C的理由也很多,但是在接下來的幾年中,隨著越來越多的示例代碼開始出現在C++中,請不要感到驚訝。