在讀《C/C++嵌入式系統編程》一書的時候,發現了一個很有意義的話題,在這裡記錄下來,以備後用
本文包含知識點:嵌入式中,通常不使用的C++特性
/**********************************我是可愛的分割線**^_^***************************************/
嵌入式的 C++標準
你可能想知道為什麼C++語言的創造者加入了如此多的昂貴的——就執行時間和代碼大小來說——特性。你並不是少數,全世界的人都在對同樣的一件事情困惑——特別是用C++做嵌入式編程的使用者們。很多這些昂貴的特性是最近添加的,它們既不是絕對的必要也不是原來C++規範的一部分。這些特性一個接著一個的被添加到進行中著的“標準化”進程中來。
在1996 年,一群日本的晶片廠商聯台起來定義了一個C++語言和庫的子集,它更加適合嵌入式軟體開發。他們把他們新的工業標準叫做嵌入式C++。令人驚奇的是,在它的初期,它就在C++使用者群中產生了很大的影響。
作為一個C++標準草案的合適子集,嵌入式C++省略了很多不限制下層語言可表達性的任何可以省略的東西。這些被省略的特性不僅包括像多重繼承性、虛擬基類、運行時類型識別和異常處理等昂貴的特性,而且還包括了一些最新的添加特性,比如:模板、命名空間、新的類型轉換等。所剩下的是一個C++的簡單版本,它仍然是物件導向的並且是C 的一個超集,但是它具有明顯更少的運行開銷和更小的運行庫。
很多商業的C++編譯器已經專門地支援嵌入式C++標準。個別其他的編譯器允許手工的禁用具體的語言特性,這樣就使你能夠模仿嵌入式C++或者建立你的很個人化的C++語言。
/**********************************我是可愛的分割線**^_^***************************************/
自己補充一點:C++中還有有個很帥的特性,叫作“函數重載”——對於我們搞嵌入式的人來說,最好也不要用,這個在以後不得不用到“C、C++混合編程”的時候就能體會到了!