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

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

一、单片机编程的特点

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

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

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

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

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

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

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

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

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

作者丨悟空问答:老马识途单片机

想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13群)你如果感觉自学C语言/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。

java和c语言的区别_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...相关推荐

  1. java和c语言的区别_都说C语言不会过时,但你是否还需要掌握其他语言?

    01为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:"傻B!"这个在心 ...

  2. 单片机用python还是c语言_单片机为什么一直用C语言,不用其他编程语言?

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

  3. 单片机单口不可用或被占用_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...

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

  4. 机器人编程与python语言的区别_儿童编程和机器人编程有啥区别?

    这是最全面的回答!一篇文章让你彻底了解少儿编程和机器人编程的区别! 虽然都带有"编程"二字,但少儿编程和机器人编程还是有本质区别的,有哪些不一样呢? 偷懒的家长可以直接看下面这张表 ...

  5. 单片机学c语言还是python好_单片机开发用哪种语言最好?

    在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径.多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言.但是随着现在可用于微处理器的新语言,用户在 ...

  6. java 协程线程的区别_线程和协程的区别的通俗说明

    表面上看协程和线程似乎是同一个东西,能达到的效果也相同,但是在底层的实现上却有着非常大的区别,在服务器端的绝大部分应用中,协程要比线程节省资源的多. 通俗易懂的讲,线程是操作系统的资源,当java程序 ...

  7. 机器人编程与python语言的区别_一分钟看懂“机器人编程”和“少儿编程”的区别!...

    随着编程学习全球化的趋势,国内编程学习热潮日盛,越来越多的家长开始让孩子接触学习编程. 然而在挑选学习课程的过程中,机器人编程和少儿编程是最让家长头疼的问题之一. 因为两者的名称都有"编程& ...

  8. python制作辅助和易语言的区别_为什么多数外挂都用易语言?

    写一个答非所问的答案吧,刚看到有人说想举报答非所问的人,额额额,确实,,,,,我这样做算是为易语言正名吧,讲下我的编程经历好了 我也算是个是个易语言忠实用户了,除了写过偷老师插在教室里的U盘的内容外, ...

  9. python语言程序设计慕课_中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案...

    中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案 更多相关问题 智慧职教: 反应级数的绝对值不会超过3,可以是正整数或者负整数,不能是分数. 在铆接过程中,铆孔的质量直接影响铆接质量 ...

最新文章

  1. url模块和querystring模块
  2. JS判断页面加载完毕
  3. 4/8 Serverless 技术实践营成都站持续报名中
  4. qt+visa实现程控实例
  5. oracle自带的加密函数,oracle 的加密解密函数
  6. 【软件测试】测试驱动开发
  7. android华为指纹开发_2020指纹芯片行业市场调研分析报告
  8. 别把数据当成万金油,如何用OKR搞垮一个团队?
  9. CSU 1556 Pseudoprime numbers
  10. 实战BootStrap:利用BootStrap制作全平台响应式站点
  11. ElasticSearch + Canal 开发千万级的实时搜索系统【转】
  12. chrome升级后无高级-断续访问
  13. Qt —— QWebEngineView加载谷歌离线地图(包含离线地图瓦片下载制作)
  14. (最完美)红米Note 5A的usb调试模式在哪里打开的步骤
  15. verilog——三八译码器
  16. SK18752功放板
  17. 计算机应用基础(专)【7】
  18. JavaWeb核心技术——RequestResponse用户登录注册案例
  19. 光驱叹号,我的电脑看不见光驱
  20. 计网(第五版)3-41

热门文章

  1. QQ空间相册展示特效
  2. TQ210裸机编程(2)——LED流水灯
  3. 在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug
  4. linux c编程头文件,如何在Linux中找到C编程语言的头文件?
  5. python 下载公众号文章_python3下载公众号历史文章
  6. linux系统怎样指定gpu运行,linux服务器如何指定gpu以及用量
  7. python发送文件_Python实现基于HTTP文件传输实例
  8. python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
  9. windows桌面待办事项_想在手机桌面上安装一个便利贴,下载什么便签软件好?
  10. kali kda安装 linux_全昭妍미연Bea MillerWolftylaKDA-THE BADDEST