发新帖我要提问
12
返回列表
打印
[开发工具]

关于STM32中IAR环境下如何包含C++头文件及中断函数问题

[复制链接]
楼主: hotpower
手机看帖
扫描二维码
随时随地手机跟帖
21
大道至简| | 2009-11-4 10:35 | 只看该作者 回帖奖励 |倒序浏览
27楼: 对于那些所谓字符串操作方便的说法。
我看过VC的CString内部实现的源码,所谓动态添加、增长,其实就是先判断自己的buff是否满足要求,满足要求则直接操作;不满足则先delete buff,然后再new一个buff,接着操作……具体实现不过是把C封装起来罢了
至于CString str3=str1+"hello,world!";这种应用,不过是编译器帮了个大忙,让你用这样的语法写就可以产生相应的C代码罢了。
所以所谓xx思想是存在人脑中,而不是在编程语言中。各种编程语言都有自己的优点和缺点,没有什么好争论的,青菜萝卜各有所爱。

--------------------------
别人封装过了,就说明他的适应性更强。就好象恐龙进化到了哺乳动物,那哺乳动物一定更高级一样。

使用特权

评论回复
22
kiton_law| | 2009-11-24 00:21 | 只看该作者
C没有C++的封装和继承,所以程序的架构是会有差别的
大道至简 发表于 2009-11-2 12:04


封装和继承是一种编程思想,而不是某种程序语言的特有行为
既然是一种思想,那么即便用汇编也可以表达,就像你要对女孩儿说“我爱你”的话,你用中文可以说,难道用英文说出来就变成“我恨你了”吗?
C语言的程序也可以体现封装和继承的思想,而且可以体现的很好。

C++的先进性在于他对封装和继承的思想做了强制约束,使它的的实现不在依赖于编程者的思维方式,而是用更为通用的模板,这样提高了程序的可读性和可维护性还有安全性。但这些为了安全性可维护性可读性做的强制约束,并不是封装和继承的本质,而是为了实现它的一种手段。

其实研究下编程语言的发展就知道,总是从提高可读性和可维护性的角度出发,但对于编程思想的体现,我认为任何语言都是可以的。

所以,不是面向对象的语言,也可以写面向对象的程序,只是那些支持面向对象的语言,有更好更清楚更安全的表达方式而已。面向对象也只是一种思想,而不是某种语言的语法,我最开始学习面向对象的时候,那本书是用伪代码写的。

如果觉得面向对象就一定是C++,C#,java的人,我只能说没有学到本质,面向对象思想和编程语言无关,这就是为什么有UML这种东西的存在,而且很流行。

使用特权

评论回复
23
McuPlayer| | 2009-11-24 00:39 | 只看该作者
Open Source的Prj用C++的确实比较少
追求效率的人用纯C,追究Object Oriented的用JAVA之类

比如C++的虚函数的处理,靠的是virtual Table问题,如果继承了N层后
那个函数的定位,就是指针的指针的指针的指针的指针的指针的..........

我一个项目发现用CPP后code size会变很大,后来改用C写,套用了CPP的思想
我在里面用了很多this指针,基本上用C和CPP都可以编译,算是为以后留条后路吧,呵呵

使用特权

评论回复
24
McuPlayer| | 2009-11-24 00:43 | 只看该作者
JAVA对虚函数的处理,采用了另外一种方案,靠的是名字
所以,如果只是继承了一层的虚函数,CPP的性能远大于JAVA,但继承了N多的层次后,JAVE开始反超CPP了

我们写代码时候也要考虑到语言的特性,扬长避短,为我所用。

使用特权

评论回复
25
baidudz| | 2009-11-24 09:10 | 只看该作者
到零点了还在回帖呀,辛苦啊

使用特权

评论回复
26
hsbjb| | 2009-11-24 18:44 | 只看该作者
好古老的贴,都是去年过年的事了,马上又要过年了

使用特权

评论回复
27
classBILL| | 2009-11-25 15:49 | 只看该作者
1# hotpower
顶你。

使用特权

评论回复
28
byeyear| | 2009-11-26 18:32 | 只看该作者
C++是个好东西,不过不太敢用
就说string吧,支持+-=比strcpy之流方便多了
但是你如果看它的内部实现就会发现大量调用new/delete
另一个好用不敢用的就是vector
一样的原因
就连IAR自己的Help都说对于长期运行系统不建议使用C++
因为很容易就会造成内存碎片
前阵子曾经想过ucos+重载new/delete绕过这个问题
忙。搁下了。

使用特权

评论回复
29
xiaolinfa1987| | 2018-12-24 14:29 | 只看该作者
很古老的贴,这帖不错,有争论就说明有价值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则