你可能想知道為什么C++語(yǔ)言的創(chuàng)造者加入了如此多的昂貴的——就執(zhí)行時(shí)間和代碼大小來(lái)說(shuō)——特性。你并不是少數(shù),全世界的人都在對(duì)同樣的一件事情困惑——特別是用C++做嵌入式編程的用戶們。很多這些昂貴的特性是最近添加的,它們既不是絕對(duì)的必要也不是原來(lái)C++規(guī)范的一部分。這些特性一個(gè)接著一個(gè)的被添加到正在進(jìn)行著的“標(biāo)準(zhǔn)化”進(jìn)程中來(lái)。在1996 年,一群日本的芯片廠商聯(lián)臺(tái)起來(lái)定義了一個(gè)C++語(yǔ)言和庫(kù)的子集,它更加適合嵌入式軟件開(kāi)發(fā)。他們把他們新的工業(yè)標(biāo)準(zhǔn)叫作嵌入式C++。令人驚奇的是,在它的初期,它就在C++用戶群中產(chǎn)生了很大的影響。
作為一個(gè)C++標(biāo)準(zhǔn)草案的合適子集,嵌入式C++省略了很多不限制下層語(yǔ)言可表達(dá)性的任何可以省略的東西。這些被省略的特性不僅包括像多重繼承性、虛擬基類、運(yùn)行時(shí)類型識(shí)別和異常處理等昂貴的特性,而且還包括了一些最新的添加特性,比如:模板、命名
tb空問(wèn)、新的類型轉(zhuǎn)換等。所剩下的是一個(gè)C++的簡(jiǎn)單版本,它仍然是面向?qū)ο蟮牟⑶沂荂 的一個(gè)超集,但是它具有明顯更少的運(yùn)行開(kāi)銷和更小的運(yùn)行庫(kù)。
很多商業(yè)的C++編譯器已經(jīng)專門地支持嵌入式C++標(biāo)準(zhǔn)。個(gè)別其他的編譯器允許手工的禁用具體的語(yǔ)言特性,這樣就使你能夠模仿嵌入式C++或者創(chuàng)建你的很個(gè)性化的C++語(yǔ)言。