{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

单片机为什么还在用C语言编程?

ASCHASCH 回答3 收藏1
收藏问题

3条回答

dmlllll

dmlllll

回答于2022-06-22 18:37

单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。

这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。

一、单片机编程的特点

对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。

第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。

第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。

二、高级语言编写单片机程序的缺陷

高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

高级语言无法实现精确的时序控制。

三、C语言是一个折中选择

其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。

而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位

评论0 赞同0
  •  加载中...
马忠志

马忠志

回答于2022-06-22 18:37

1.汇编太麻烦,移植性差;

2.C/C++为操纵硬件而生,它的编译器编译成的目标平台机器码可直接运行,并非生成字节码或者脚本;

3.JAVA,.NET语言编译出来的程序是字节码,需要庞大的运行环境将字节码实时翻译成机器码才能运行;

4.Python,Ruby等属于脚本语言,需要解释器逐条解释(pyo可以无视),比字节码性能更差;

5.单片机性能差,实时性要求高,而且没有强大的运行环境和解释器,故一般不能运行JAVA,.NET,Python,Ruby等程序,倒是可以执行Lua这样轻量级脚本。

C语言是最适合的,没有之一!

评论0 赞同0
  •  加载中...
tigerZH

tigerZH

回答于2022-06-22 18:37

用c怎么了,怎么了,别用你的爪牙,拍黄瓜,c草草来show优越感,世界的一切来源于啥?是谁点亮了宇宙的第一道曙光,所有的井井有条来自于你的why,你要是追求到why的根底,都它,对,不要怀疑,都是它,是它,还是它,一个,所有大厦的根基,都属于它,回答完毕。

机器语言->c->c++->java,然后后面的都是。。。

性能也是这样排的

最厉害的还是写的人,人是一切

c是唯一实现自举的语言,懂的自然懂,问问微软,linux,大苹果,java都会告诉你答案,c是他们的爸爸

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<