[PIC®/AVR®/dsPIC®产品] 单片机为什么一直用C语言,不用其他编程语言?

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yangxiaor520 发表于 2022-6-14 08:33 来自手机 | 显示全部楼层
C语言更适合
gouguoccc 发表于 2022-6-15 18:30 来自手机 | 显示全部楼层
因为C语言更适众
hu9jj 发表于 2022-6-16 07:38 | 显示全部楼层
caosix 发表于 2022-6-15 18:10
早就 已经 有这个 论断 了 。。最近 这类型 的 “基础 科普帖子” 还真不少 。 ...

搬家公司,Ctrl_C+Ctrl_V。
mcu5i51 发表于 2022-6-16 17:26 | 显示全部楼层
你说的java,python,VC都有用呀,只是二次开发;另外VC是可视化C编程,不是单独的语言,很多UI都有可视的编辑工具
gim008 发表于 2022-6-20 00:45 | 显示全部楼层
都在向高级语言发展,c语言只是当下的主流,一个阶段而已,新的编程方式正在产生。
peipei880 发表于 2022-6-22 14:59 | 显示全部楼层
适配性比较好吧
pzsh 发表于 2022-6-23 08:38 | 显示全部楼层
易维护,易复用
Sunriver_Yao 发表于 2022-6-23 15:55 | 显示全部楼层
Assembly, microPascal, microPython...是你跳到井底,没办法!
逍遥派掌门 发表于 2022-6-24 08:32 | 显示全部楼层
STC的51单片机,我用高级语言 pascal 编程。不存在楼主说的那些,呵呵
meisk 发表于 2022-6-24 11:39 | 显示全部楼层
很快会被RUST取代,而且RUST还不是只取代C语言,大家科普下RUST的特点就会知道,是编程语言的未来
meisk 发表于 2022-6-24 11:41 | 显示全部楼层
听说linux都打算用RUST重写了
klbyf 发表于 2022-6-29 09:06 | 显示全部楼层
太好了!
z_no1 发表于 2022-6-30 15:16 | 显示全部楼层
meisk 发表于 2022-6-24 11:41
听说linux都打算用RUST重写了

等LINUX用RUST重写了,我就换RUST.
没重写前,继续用C.
嘿嘿嘿.
caigang13 发表于 2022-7-1 19:34 来自手机 | 显示全部楼层
你可以用C++
lihui567 发表于 2022-7-3 10:41 | 显示全部楼层
也可以用python
chenjun89 发表于 2022-7-3 10:49 来自手机 | 显示全部楼层
你也可以用汇编啊,哈哈。
kiwis66 发表于 2022-7-3 14:46 | 显示全部楼层
维护,移植,理解
ulystronglll 发表于 2022-7-4 15:33 | 显示全部楼层
C语言是通用的语言  
uytyu 发表于 2022-7-4 15:57 | 显示全部楼层
汇编语言可以的。   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

59

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部