温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在RT-Thread中使用C++编程

发布时间:2021-11-26 14:32:29 来源:亿速云 阅读:512 作者:iii 栏目:互联网科技

本篇内容介绍了“怎么在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++编程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI