打印

单片机为什么一直用C语言,不用其他编程语言?

[复制链接]
921|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。
这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。
一、单片机编程的特点
对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。
第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。
第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。
二、高级语言编写单片机程序的缺陷
高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。
高级语言无法实现精确的时序控制。
三、C语言是一个折中选择
其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。
而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位

使用特权

评论回复

相关帖子

沙发
逍遥派掌门| | 2020-8-10 23:53 | 只看该作者
C语言是主流,不可否认。
但其他高级语言也不是那么不堪,或者是楼主没有发现而已。

https://bbs.21ic.com/icview-1124250-1-1.html

另外,楼主的:

这个说法值得商榷,RTOS怎么说?

使用特权

评论回复
评论
michael_llh 2020-8-11 17:02 回复TA
我觉得是楼主的表达有误吧,没有明确指出移植哪部分内容。 当然对于底层汇编部分各大厂商,不同的系列都是不同的。 操作系统移植的话,也是说通过修改不同单片机的汇编部分,当然可能还会涉及到其的就是,但是汇编的修改是跑不了的。 在c语言层面,一些功能的移植对于不同的单片机,移植是可以做到的,具体看实际的场景了 
板凳
simonliu009| | 2020-8-12 22:24 | 只看该作者
抄来的**,就不要太当真啦.....

使用特权

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

本版积分规则

468

主题

472

帖子

20

粉丝