首页编程语言c语言面试 编程题目

c语言面试 编程题目

cysgjjcysgjj时间2024-07-17 19:21:57分类编程语言浏览35
导读:JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?C和CPP是编译型语言,也就是可以生成exe文件直接放在单片机内部运行的,其他解释型语言需要解释器放在单片机内部而且要与单片机对接才行。第一占空间,第二影响……...
  1. JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?

java、C、c++python同样是高级语言,为什么只有C和C++可以编写单片机程序

C和CPP是编译型语言,也就是可以生成exe文件直接放在单片机内部运行的,其他解释型语言需要解释器放在单片机内部而且要与单片机对接才行。第一占空间,第二影响运行速度

这个问题简单PythonJava是解释型语言,需要有虚拟机解释器支持,需要更多的内存和cpu处理速度,而c,c++可以直接由编译器生成机器指令,所需要的***少,单片机可以正常运行。另外python,现在JAVA设计时就是为了大型程序而生,不适合单片机。

单片机能否提供程序所需的运行环境决定了某种语言能否用于单片机程序的开发。单片机的总线宽度决定了单片机存储空间的大小。其中,拥有32位总线的单片机的存储空间可达4GB,装个Linux差不多可以跑各种程序了。这里我们只讨论总线宽度在16位以下的单片机。

c语言面试 编程题目
图片来源网络,侵删)

单片机上没有I/O设备,只有I/O接口,程序要以机器码的形式写入随机存储器(就是PC的内存)。主流单片机的总线宽度一般是16位,比如,51单片机。存储器空间最大能做到64K。一些单片机的存储空间只有256个字节甚至更小。这么小的存储空间容不下操作系统所以能在单片机上跑的程序都得是原生的机器码。C/C++都能直接编译成原生的机器码程序,因此,广泛用于单片机程序开发。J***a需要虚拟机,基本上不能在单片上运行(JVM有几百M)。Python可以编译成C语言的原生程序,有可能在单片机上运行。但是,Python的程序里一般都带着一庞大的标准库,简单移植到单片机上不太可行,需要做一些定制化改造才有可能。这类语言不能移植到单片机上的原因主要他们为了能在不同的操作系统上移植,使用了独立的运行环境,而这个环境的体量太大装不到单片机上。

最后科普一下高级语言的概念。机器码被称为第一代语言,汇编被称为第二代语言。其他语言都是高级语言。C/C++是第三代语言。J***a和Python被称为3.5代或者是第四代语言。主要是因为他们废除了内存操作指令。还有更高级的语言,SQL因为没有了变量定义(准备内存空间)被称为第四代或第五代语言。

作为985院校的本硕毕业生以及BAT的J***a开发工程师来回答这个问题。

c语言面试 编程题目
(图片来源网络,侵删)

也许你早就好奇了,什么是高级语言,那对应的有没有低级语言?

简单粗暴的解释,人类直接使用的语言就算高级语言,比如题主提到的,都是程序员编程时候直接使用的,相对于低级语言来说,更具有逻辑性,更容易阅读和编写。高级语言可以认为是对低级语言的封装,因此实现同样的功能,使用高级语言编写的程序更加短小精悍。

而与低级语言相对,就不是给人看的,而是给机器看的语言。所有高级语言在真正执行的时候,都要编译为低级语言,毕竟真正的执行者是机器。这里我们可以将机器语言和汇编看为低级语言,它们通常使用的是机器识别的01代码已经一些符号

c语言面试 编程题目
(图片来源网络,侵删)

单片机其实就是一个微型电脑,除了功能和性能上比我们家用电脑弱很多,其他内部重要构造一应俱全,用来做一些控制家用电器的工作足够了,比如洗衣机,微波炉什么的。

这些单片机通常都是用C/C++编写的。因为他们是编译型语言,是可以直接生成exe文件,然后直接放在单片机内部运行的。而像J***a,属于解释型语言,它编译后的class文件是要放在jvm中才能运行的,直接放进单片机,人家根本理解不了。

如果偏要J***a写单片机程序,就需要把它的解释器烧进单片机且与单片机对接才行。这样做第一占用单片机有限的空间***,第二也会影响执行速度。你总不希望你点击微波炉的加热按钮,三秒钟之后它才反应过来开始加热吧。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/16318.html

单片机语言程序
html5是编程语言吗 大学生科技创新素材,大学生科技创新素材大赛