引用: 引用 36 楼 jiqiang01234 的回复:
引用 33 楼 goodboy2012 的回复:
个人觉得面向对象的设计思想在实时性上比较差。
面向对象包括三方面的内容:封装、继承和多态。而我提倡的单片机c语言编程是鼓励“封装”,使之更具模块化。其实继承和多态也并非就是“实时性”差,只是相对于单片机资源来说比较费ram和rom。毕竟单片机还很少有支持c++的,51系列的我是闻所未闻。
从面向对象思想出现的历史中我们也可以看到,是因为当程序规模超过10万行以上时,面向过程的方法就有些难于应对了,这样才慢慢出现了面向对象的设计方法。要注意的一点是,面向对象的设计方法更适用于“规模大”的程序,而单片机程序就算用64k的rom也就是一万多行。任何技术都有它的适用范围,切不可乱用。
LZ你有点小看编译器了,我们以前写协议的时候
四五W行代码才二十多K,嘿嘿,64K还是相当大的空间的
不信你看一下当前流行的单片机,没有多少是有64K的ROM的
另外,提一个:不是单片机支持语言
面是IDE和相关的平台支持
因为,不论什么机器,至少当前,机器只认0和1
不论什么语言最终到机器层面都是机器指令
语言层次的提高带来了对程序员来说更加友好的接口
让他们可以从更高的层次去看机器
ASM就不说了
C带来了函数,函数的调用会在栈上产生消耗
后面的面向对象语言的特性带来的是什么?
为了支持对象,让机器多去处理怎么去调用哪个函数
而这个是不可预知的
如果是一个对时间要求严格的系统,这将是灾难性的
其实,前些天一些大哥就在坛子里说KEIL已经支持CPP
至于别的支持面向对象的平台,你可以看一下IAR,在430上我试过丫的CPP(仅是试过)
相信丫8051上也有
对于代码量,不知道LZ是不是真的敲过上W行的代码(不在IDE的帮助下)
当然,我支持用面向对象的方法来规划设计系统
但是,真正编码的时候,只要架构上清晰。
一个只有一年多经验的工程师也是不会出现所谓混乱
之前看软工的书的时候,印象我也见到过说10W行代码可怕
不过实践告诉我,这个分水岭并不是绝对的。