搜索
bottom↓
回复: 34

打算以后单片机全面上C++

[复制链接]

出0入0汤圆

发表于 2011-7-8 08:29:27 | 显示全部楼层 |阅读模式
打算以后单片机全面上C++。
51,AVR,STM8,STM32都用C++。

C++是功能,语法更灵活的C。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-7-8 08:32:30 | 显示全部楼层
怎么用?

出0入0汤圆

发表于 2011-7-8 08:35:49 | 显示全部楼层
会吗?

出0入0汤圆

发表于 2011-7-8 08:40:01 | 显示全部楼层
能说下好处吗?编程简单些?编程效率比C高些?还是程序维护方便?还是技术趋势呢? 一直用C,C++也懂点,请楼主说哈感受!

出0入18汤圆

发表于 2011-7-8 08:46:25 | 显示全部楼层
回复【楼主位】CC2530  上官金虹
-----------------------------------------------------------------------
愿闻其详

出0入0汤圆

发表于 2011-7-8 08:52:46 | 显示全部楼层
上官大侠 出本书吧、让我们学习下

出0入0汤圆

发表于 2011-7-8 08:56:42 | 显示全部楼层
等lz指教~

出0入0汤圆

发表于 2011-7-8 09:22:29 | 显示全部楼层
威......武......

出0入0汤圆

发表于 2011-7-8 09:31:16 | 显示全部楼层
占位围观。

出0入0汤圆

发表于 2011-7-8 09:37:08 | 显示全部楼层
别是搞噱头啊!等你转型成功了,写本书吧,我们想瞻仰一下。

出0入0汤圆

发表于 2011-7-8 09:40:26 | 显示全部楼层
C++代码会增大的

出0入0汤圆

发表于 2011-7-8 09:48:57 | 显示全部楼层
看过stm32用c++搞的,基本思路好像就是把每一种外设封装成类,不过最下面还得c来支撑吧?
等楼主研究结果吧,:P

出0入0汤圆

发表于 2011-7-8 09:50:07 | 显示全部楼层
我觉得单片机上还是有C好,但是可以使用面向对象的思想编程。
对象的封装,继承等可以参考ffxz的RTT代码,C语言实现C++的面向对象程序设计。

出110入109汤圆

发表于 2011-7-8 18:08:11 | 显示全部楼层
回复【12楼】lugang_2920213  老陆
我觉得单片机上还是有c好,但是可以使用面向对象的思想编程。
对象的封装,继承等可以参考ffxz的rtt代码,c语言实现c++的面向对象程序设计。
-----------------------------------------------------------------------
赞同

出0入0汤圆

发表于 2011-7-8 18:13:39 | 显示全部楼层
来学习怎么用C++开发单片机,求示例程序!!

出0入0汤圆

发表于 2011-7-8 18:28:01 | 显示全部楼层
MCU 能处理结构体(structure), C++ 中的类(class) 以看作是 structure, 只是这种 结构体能扩展功能  和 接口, 我看过很多驱动是用C写的, 也有见过用C++写的

出0入0汤圆

发表于 2011-7-8 19:14:16 | 显示全部楼层
关注中,怎么用? 用什么编译器啊

出0入0汤圆

发表于 2011-7-8 19:17:53 | 显示全部楼层
C++是好东西

出0入0汤圆

发表于 2011-7-8 19:21:07 | 显示全部楼层
回复【14楼】liwang0806  
-----------------------------------------------------------------------

Step 1,找到所用MCU的C++编译器。
Step 2,将所有.c文件修改扩展名为.cpp。
Step 3,将所有源文件重新加入工程。
Step 4,文件头尾用
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
保护。

理论上,已经用上C++了。-_b
基础的东西C/CPP差异不大,CPP的额外开销也不大。

出0入0汤圆

发表于 2011-7-8 19:34:48 | 显示全部楼层
我也一直想转到C++,只是BOSS比较保守,不太愿意使用。一般来说,用C++并不会使空间使用量大增,但是它却有很多优秀的特性可供使用。这些优秀的特性,将使得在编写大型程序的时候得心应手。当然,如果用得不好,C++反而是一个累赘。

出0入0汤圆

发表于 2011-7-8 20:55:22 | 显示全部楼层
空间消耗和内存好像消耗蛮大的,写了个测试工程,不知道是不是调用了系统的cout功能造成的

出0入0汤圆

发表于 2011-7-8 22:04:12 | 显示全部楼层
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
这个东西能解释一下吗
我看过但是不明白。

出0入0汤圆

发表于 2011-7-8 22:19:54 | 显示全部楼层
回复【楼主位】CC2530 上官金虹
打算以后单片机全面上c++。
51,avr,stm8,stm32都用c++。
c++是功能,语法更灵活的c。
-----------------------------------------------------------------------

51 是绝对不可能的。
C++ 需要标准 C 的支持,这点 51 非常不够,最明显的一点,(高效)参数传递不是通过STACK的。
另外,我很难想象,51 对虚函数的支持,就算实现,效率能到什么地步。

出0入0汤圆

发表于 2011-7-8 22:21:17 | 显示全部楼层
回复【楼主位】CC2530 上官金虹
c++是功能,语法更灵活的c。
-----------------------------------------------------------------------

不,这是编程思想的颠覆。
如果没意识到这点,仅仅以为C++是C的超集,那就离C++的门还比较远。

出0入0汤圆

发表于 2011-7-9 00:30:15 | 显示全部楼层
C++就是要面向对象的编程?

出0入0汤圆

发表于 2011-7-9 07:52:21 | 显示全部楼层
回复【24楼】ruizhixing
c++就是要面向对象的编程?
-----------------------------------------------------------------------

如果你这么说的话,那就和 【18楼】 dr2001 的做法差不多了
说C++,也只能是自我陶醉了

出0入0汤圆

发表于 2011-7-9 10:21:45 | 显示全部楼层
MCU 能处理结构体(structure), C++ 中的类(class) 以看作是 structure, 只是这种 结构体能扩展功能  和 接口, 我看过很多驱动是用C写的, 也有见过用C++写的

出0入0汤圆

发表于 2011-7-9 10:22:47 | 显示全部楼层
可以学习一下RT-Thread,它使用C结构体来做的。本来结构体就是特殊的类。 C++话我觉得可以,而且应该还很有优势。 但是要应用的话还要前辈指导。

出0入0汤圆

发表于 2011-7-9 12:51:25 | 显示全部楼层
C++只要一涉及到virtual的东西,代码就会大增,效率就会大减。

出0入0汤圆

发表于 2011-7-9 13:07:55 | 显示全部楼层
确实如Cliff所说,C++并不仅仅是一个C的超集,而是一种思想的颠覆。当你明白那种思想时,你就会发现用C++的好处了。另外,C++有些特性的确会导致空间使用量大增,效率降低。至于这一些,建议参考谷歌C++编码规范,里面就有一些关于C++哪些特性是禁止使用的。

出0入0汤圆

发表于 2011-7-9 13:27:17 | 显示全部楼层
回复【21楼】xkdwangcs  
-----------------------------------------------------------------------

指示编译器按照C语法编译。。。在C++编译器要编译C的时候经常用的。。

出0入0汤圆

发表于 2011-7-9 14:14:38 | 显示全部楼层
感觉还是汇编比较简单

出0入0汤圆

发表于 2011-7-9 16:51:57 | 显示全部楼层
如果大型程序的所有东西都要自己做,且没有参考。不管是用C还是CPP,都是蛋疼的事。

出0入0汤圆

发表于 2012-9-13 13:30:06 | 显示全部楼层
得用更多的存储器资源!

出0入0汤圆

发表于 2012-9-13 19:12:37 | 显示全部楼层
javascript 都可以模拟OO模型, C 有什么不可, OO是个设计的概念, 片上系统 要OO裁减了才好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-11 19:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表