十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
本篇內(nèi)容介紹了“怎么在RT-Thread中使用C++編程”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)市中免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
自RT-Thread 2.0.x版本開(kāi)始,RT-Thread引入了對(duì)C++語(yǔ)言編程的支持,主要包括C++系統(tǒng)底層的支撐。
要在RT-Thread中使用C++語(yǔ)言編程,需要在rtconfig.h配置頭文件中定義:
#define RT_USING_CPLUSPLUS
一般的,當(dāng)使用C++語(yǔ)言編程時(shí),C++代碼默認(rèn)需要底層C運(yùn)行庫(kù)的支持,所以建議打開(kāi)C運(yùn)行庫(kù)支持:
#define RT_USING_LIBC
當(dāng)導(dǎo)入RT_USING_CPLUSPLUS配置時(shí),將加入components\cplusplus目錄下的組件代碼,主體在crt.h/.cpp等文件中,其中包括了C++中對(duì)象創(chuàng)建和銷(xiāo)毀的操作符:new、delete,以及__cxa_pure_virtual實(shí)現(xiàn)。__cxa_pure_virtual函數(shù)會(huì)再調(diào)用一個(gè)未實(shí)現(xiàn)的純虛方法時(shí)被調(diào)用。
C++中的對(duì)象new、delete操作符號(hào)按照RT-Thread的規(guī)則,以rt_malloc、rt_free的方式來(lái)分配和釋放內(nèi)存。
另外,當(dāng)在程序中定義了全局變量時(shí),全局變量需要提前進(jìn)行初始化,在RT-Thread/C++版本中,是以cplusplus_system_init初始化函數(shù)進(jìn)行實(shí)現(xiàn),并導(dǎo)出到組件這一級(jí)的初始化序列中。<所以當(dāng)你在RT-Thread/C++代碼中使用到C++全局對(duì)象時(shí),需要主意它的初始化階段,不要在全局對(duì)象中過(guò)多引用底層代碼>
目前RT-Thread/C++可以支持模板,異常則需要根據(jù)編譯器實(shí)現(xiàn)的底層C++接口做一定的調(diào)整補(bǔ)充(例如當(dāng)使用GCC時(shí),stdc++需要的
__throw_bad_alloc/__throw_bad_function_call/__throw_length_error/__throw_out_of_range
接口函數(shù))。而RTTI,則不建議使用。
“怎么在RT-Thread中使用C++編程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!