打算以后单片机全面上C++
打算以后单片机全面上C++。51,AVR,STM8,STM32都用C++。
C++是功能,语法更灵活的C。 怎么用? 会吗? 能说下好处吗?编程简单些?编程效率比C高些?还是程序维护方便?还是技术趋势呢? 一直用C,C++也懂点,请楼主说哈感受! 回复【楼主位】CC2530上官金虹
-----------------------------------------------------------------------
愿闻其详 上官大侠 出本书吧、让我们学习下 等lz指教~ 威......武...... 占位围观。 别是搞噱头啊!等你转型成功了,写本书吧,我们想瞻仰一下。 C++代码会增大的 看过stm32用c++搞的,基本思路好像就是把每一种外设封装成类,不过最下面还得c来支撑吧?
等楼主研究结果吧,:P 我觉得单片机上还是有C好,但是可以使用面向对象的思想编程。
对象的封装,继承等可以参考ffxz的RTT代码,C语言实现C++的面向对象程序设计。 回复【12楼】lugang_2920213老陆
我觉得单片机上还是有c好,但是可以使用面向对象的思想编程。
对象的封装,继承等可以参考ffxz的rtt代码,c语言实现c++的面向对象程序设计。
-----------------------------------------------------------------------
赞同 来学习怎么用C++开发单片机,求示例程序!! MCU 能处理结构体(structure), C++ 中的类(class) 以看作是 structure, 只是这种 结构体能扩展功能和 接口, 我看过很多驱动是用C写的, 也有见过用C++写的 关注中,怎么用? 用什么编译器啊 C++是好东西 回复【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的额外开销也不大。 我也一直想转到C++,只是BOSS比较保守,不太愿意使用。一般来说,用C++并不会使空间使用量大增,但是它却有很多优秀的特性可供使用。这些优秀的特性,将使得在编写大型程序的时候得心应手。当然,如果用得不好,C++反而是一个累赘。 空间消耗和内存好像消耗蛮大的,写了个测试工程,不知道是不是调用了系统的cout功能造成的 #ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
这个东西能解释一下吗
我看过但是不明白。 回复【楼主位】CC2530 上官金虹
打算以后单片机全面上c++。
51,avr,stm8,stm32都用c++。
c++是功能,语法更灵活的c。
-----------------------------------------------------------------------
51 是绝对不可能的。
C++ 需要标准 C 的支持,这点 51 非常不够,最明显的一点,(高效)参数传递不是通过STACK的。
另外,我很难想象,51 对虚函数的支持,就算实现,效率能到什么地步。 回复【楼主位】CC2530 上官金虹
c++是功能,语法更灵活的c。
-----------------------------------------------------------------------
不,这是编程思想的颠覆。
如果没意识到这点,仅仅以为C++是C的超集,那就离C++的门还比较远。 C++就是要面向对象的编程? 回复【24楼】ruizhixing
c++就是要面向对象的编程?
-----------------------------------------------------------------------
如果你这么说的话,那就和 【18楼】 dr2001 的做法差不多了
说C++,也只能是自我陶醉了 MCU 能处理结构体(structure), C++ 中的类(class) 以看作是 structure, 只是这种 结构体能扩展功能和 接口, 我看过很多驱动是用C写的, 也有见过用C++写的 可以学习一下RT-Thread,它使用C结构体来做的。本来结构体就是特殊的类。 C++话我觉得可以,而且应该还很有优势。 但是要应用的话还要前辈指导。 C++只要一涉及到virtual的东西,代码就会大增,效率就会大减。 确实如Cliff所说,C++并不仅仅是一个C的超集,而是一种思想的颠覆。当你明白那种思想时,你就会发现用C++的好处了。另外,C++有些特性的确会导致空间使用量大增,效率降低。至于这一些,建议参考谷歌C++编码规范,里面就有一些关于C++哪些特性是禁止使用的。 回复【21楼】xkdwangcs
-----------------------------------------------------------------------
指示编译器按照C语法编译。。。在C++编译器要编译C的时候经常用的。。 感觉还是汇编比较简单 如果大型程序的所有东西都要自己做,且没有参考。不管是用C还是CPP,都是蛋疼的事。 得用更多的存储器资源! javascript 都可以模拟OO模型, C 有什么不可, OO是个设计的概念, 片上系统 要OO裁减了才好 {:lol:}
页:
[1]