原创 单片机开发、嵌入式系统开发 速度最快的还是C语言

2011-3-10 16:30 3362 18 28 分类: 消费电子

    芯片的发展趋势是体积越来越小,速度越来越快,电压越来越低、能耗越来越省。
    软件就难说了。 最开始用机器码的时候,开发速度很慢。
    后来才有汇编语言,可读性好多了,出错的概率也小了。汇编语言和机器码是有一一对应的关系的,就是为了容易维护才用汇编代替机器码的。
    然后,出现C语言,那简直是一场革命,编程的速度快了,可读性好了,可维护性也增强了。
    无论是C语言还是汇编语言,都不能直接运行,必须通过编译系统把它们转化为机器码,才能在芯片中运行。在C编过程中,有一个中间产物,那就是汇编语言。
    接下来,软件越来越复杂,客观上,也要求软件要发展。出现C++之后,的确带来了很多便利。但是,C++运用到嵌入式系统中的最大缺点是它的运行速度慢。
    不经常用汇编语言的人,一般很难理解这一点。C++的最大优点是他的封装好,而它的封装是通过类(class)来实现的。编译器在编译的C++过程中,首先给某个类分配一个空间,然后定义一个指针指向这个类。而类中的变量的位置都用这个类的地址加上一个偏移量来表示,这样在访问类中的变量时,就不是直接访问这个变量,而是读取类的指针,然后在加上这个变量在类中的偏移量,得到变量的地址,然后再通过地址读取变量。 访问类中的变量,都是要通过指针,要比直接访问用更多的指令,所以速度会降低。
      所以,如果不是非常复杂的系统,如果不是用速度很快的硬件,最好不要用C++,还是C语言更加实际一些。
      而和汇编语言比起来,C语言的编程速度,可读性,可维护性是不用说了,很多人在要求速度的时候都会想到汇编。其实这并不是一个明智的选择。汇编之所以有时候快,是因为它可以接用寄存器,或者芯片内部的高速RAM。如果不是因为这两种情况,就不要盲目的使用汇编,选择一个更好的算法往往是明智的选择。
    我最喜欢的永远都是C.

文章评论10条评论)

登录后参与讨论

cotulla_285706805 2016-2-20 15:48

国内急功近利的市场,着急赚钱的老板,他们设想的公司都没有10年,可一个大牛要用多少钱和时间建立呢。

用户839483 2014-10-22 11:11

技术这条路一直走下去,在国内是死胡同

用户1678053 2014-10-5 10:01

看看

用户530470 2014-3-8 12:10

顶一个!

用户847266 2014-1-22 23:07

Something: 重要的人/事

用户1104288 2012-2-29 12:53

我在美国卓然公司当过近9年工程师,那里有个人光是做数字音频处理就做了20多年,也有一些工程师做到60岁以上。本想做到退休的,无奈公司挡不住台企的不正当竞争,把电视部门整体解散了。UESTC BSEE,做了15年工程师的我现在很难找到工作了。国内公司竟然有18岁的EE和28岁的Sr EE。各公司的招聘信息上几乎找不到需要10年以上工作经验的工程师了。

用户1525767 2012-2-15 09:35

楼主说的那个工厂和所谓大牛都是在国外吧. 这样的人如果在中国,你试试看,他能在某个公司生存超过10年? 中国的老板们,能容忍这样的人?

用户1405011 2011-12-7 18:50

定下楼主

用户1627763 2011-11-23 13:29

king1999说的很有道理,很多工程师都在现实面前低头了

用户1634962 2011-11-22 13:19

到底如何选择职业生涯呢?
相关推荐阅读
用户1026636 2014-07-07 08:52
错失良机:就是你想成为高手,却错过了这篇文章
追悔莫及:就是有一天,你发现原来它早就在这里了。 ATMEL AT32UC3A0 A1系列摘要:我翻译的资料,有不标准的地方就自己改过来吧,我没时间搞这个。...
用户1026636 2014-07-02 21:30
爱,就是让她感觉快乐
人生活、工作的目的就是为了获得快乐。 如果一件事情,不能够让人获得快乐,那是无法持续的。   爱,不是你可以索取很多, 你更要有爱的能力, 让人快乐的能力。   所以做对...
用户1026636 2014-03-26 10:45
打造完美量产软件 目 录
      第一章 为什么有些软件需要经常调试?   一、晶振简介 之一     晶振简介 之二 二、如何设置时间中断 /4 三、小结 /22     ...
用户1026636 2014-03-26 10:44
打造完美量产软件 第一章 为什么有些软件需要经常调试? 一、晶振简介 之二
上图是为晶振的等效电路图。C1为动态电容(等效串联电容),是晶振处于谐振频率时的电容;L1为动态电感(等效串联电感);R1为动态电阻(等效串联电阻);C0为静态电容(等效并联电容)。 串...
用户1026636 2014-03-25 21:05
打造完美量产软件 第一章 为什么有些软件需要经常调试? 一、晶振简介 之一
第一章 为什么有些软件需要经常调试?     在工厂的研发部和工程部,经常听到有人大叫:“晶振的频率不准”,“晶振的频率有误差”,“又要重新设置时间中断”……     大家常常...
用户1026636 2014-03-25 19:58
打造完美量产软件 前 言
前  言       产品是企业和消费者之间最重要的联系。高质量的量产软件对于改善消费者的体验,提升产品的品质,实现产品差异化,打造产品个性,树立产品品牌是非常重要的。     本书总...
我要评论
10
18
关闭 站长推荐上一条 /2 下一条