发 帖  
原厂入驻New
C语言是如何控制硬件的?
95 c语言 硬件
分享
    提到C语言就会想到单片机编程,像java python 这些就是纯软件编程语言,不会和硬件打交道。为什么C可以和硬件打交道,做底层驱动?
0
2020-7-18 08:06:00   评论 分享淘帖 邀请回答

相关问题

8个回答
云汉达人
是靠寄存器来控制硬件动作的,寄存器其实就是个接口,根据传进来的参数再决定做什么工作。并不是只有C语言能控制,汇编、pascal等能编译成二进制的语言都可以控制。其他的高级语言、托管、解释性的语言,由于需要运行时库不能直接控制,而需要转义后才能控制。
2020-7-18 15:15:43 评论

举报

云汉达人
C 语言应该算是高级语言,在使用单片机的C语言进行编程时,只是由于增强了程序的可读性,对于逻辑设计比较方便才使用C语言的,一开始学习51时,一定是学习的汇编的,而汇编也不是单片机可以识别的,单片机可以识别的是机器语言,而机器语言的执行又与单片机或是CPU的架构有关,同样的机器语言,在ARM、X86或是51上是不同的含义,大多数情况下是不能通用执行的。单片机C语言到机器码的过程就是编译了,一般使用集成IDE如Keil,或是使用gcc.
java、python、go等等也可以控制硬件,但是其底层是C语言写的,这些高级语言只是在调用。
2020-7-18 15:33:08 评论

举报

云汉达人

这个其实是通过 编译器来实现的 C语言并没有控制硬件的功能,编译器会把C语言编译成cpu可识别的汇编指令 cpu通过这些指令实现硬件的控制,
cpu外部的ic都是通过时序电路或者组合电路来实现的,cpu控制器其IO输出输入 完成对外部IC 寄存器等操作
2020-7-18 15:45:07 评论

举报

云汉达人
C语言是高级语言,实际上只是增加了可读性,C语言操作寄存器,然后操作硬件,实际上来说都是要转成机器语言的
2020-7-18 15:56:33 评论

举报

Java和Python也可以和底層溝通喔,只是多半都會包成Library並提供API使用,這好比Andorid中的HAL層一樣
而C/C++多半就是底層直接描述的語言,這是因為C提供了Pointer的這項強大的功能使得C/C++更直覺地可以和底層溝通
也因此眾多系統也從C/C++改寫,例如UNIX,方便移植到其他系統和硬體架構,提供了較佳的彈性
Java和Python的優點則是只需要安裝對應的直譯器,例如JVM,就可以完成跨平台的移植,所以各有優缺點
以上我的見解
2020-7-18 16:03:18 评论

举报

这个只能说Java一类的是调用的底层的驱动,没有底层的驱动他也是什么都做不了的,如果你自己弄个51的底层驱动库,然后最后你也可以不用和硬件打交道了!不过51这类的不是那么的复杂不用底层了!直接驱动就可以了!我个人是这么理解的!所有的语言都是在开发环境下最后变成0和1的码。
2020-7-18 16:16:04 评论

举报

云汉达人

有个本质区别,java必须运行在java虚拟机上,python是解释性语言,而控制硬件必须是编译成的二进制,确定的语言,而不是运行一句执行一句像python那样。
所以,换句话说,如果java,python要来控制硬件,必须是专门重新做的库,底层还是C,只不过语法是java和python的语法罢了,不能完全算是python,java,因为他们二者强大的功能完全丢失了
2020-7-18 16:35:43 评论

举报

没有任何一种高级语言是可以直接控制硬件的,C也是编译成机器语言之后才可以的,其实任何语言都能够控制硬件
2020-7-18 16:50:04 评论

举报

只有小组成员才能发言,加入小组>>

292个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表