本篇內容介紹了“怎么在RT-Thread中使用C++編程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
自RT-Thread 2.0.x版本開始,RT-Thread引入了對C++語言編程的支持,主要包括C++系統底層的支撐。
要在RT-Thread中使用C++語言編程,需要在rtconfig.h配置頭文件中定義:
#define RT_USING_CPLUSPLUS
一般的,當使用C++語言編程時,C++代碼默認需要底層C運行庫的支持,所以建議打開C運行庫支持:
#define RT_USING_LIBC
當導入RT_USING_CPLUSPLUS配置時,將加入components\cplusplus目錄下的組件代碼,主體在crt.h/.cpp等文件中,其中包括了C++中對象創建和銷毀的操作符:new、delete,以及__cxa_pure_virtual實現。__cxa_pure_virtual函數會再調用一個未實現的純虛方法時被調用。
C++中的對象new、delete操作符號按照RT-Thread的規則,以rt_malloc、rt_free的方式來分配和釋放內存。
另外,當在程序中定義了全局變量時,全局變量需要提前進行初始化,在RT-Thread/C++版本中,是以cplusplus_system_init初始化函數進行實現,并導出到組件這一級的初始化序列中。<所以當你在RT-Thread/C++代碼中使用到C++全局對象時,需要主意它的初始化階段,不要在全局對象中過多引用底層代碼>
目前RT-Thread/C++可以支持模板,異常則需要根據編譯器實現的底層C++接口做一定的調整補充(例如當使用GCC時,stdc++需要的
__throw_bad_alloc/__throw_bad_function_call/__throw_length_error/__throw_out_of_range
接口函數)。而RTTI,則不建議使用。
“怎么在RT-Thread中使用C++編程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。