都说C语言可以直接操作硬件?

具体指什么呢,
其他语言就不可以吗

还有,用指针可以改写内存地址的内容,
其他语言不可以吗,比如VB.
C语言怎么操作硬件的,能举个例子吗.
是不是那些windows上的vb,c#,dephi等就做不到?

  不能。

    首先,C语言不能够直接对硬件进行操作。从本质上来说,连汇编语言都不可以。只有机器语言能够直接操作硬件。

    其次,C语言要操作硬件是必须经过一系列的编译转换。最终它会成为0101的机械码,这个时候它根本不是我们所能够理解的C语言了。

    以GCC编译器为例,这个可以分为四步。

  第一步是预处理,包括语法检查等工作。
      gcc -P abc.c
      第二步由源程序生产汇编语言代码。
      gcc -S abc.c 
      会生成abc.s文件,这个文件里就是汇编代码。
      第三步编译器生成目标代码,一个源文件生成一个目标代码。
      gcc -c abc.c
      会生成abc.o
      第四步连接器从目标代码生成可执行文件。
      gcc abc.o

  最后,相对来说,C语言在高级语言当中是最贴近物理层面的语言。它也被称作高级语言里面的低级语言。因为它很多方面都非常贴近硬件。典型的就是指针,这是一种通过物理地址直接操作内存的变量。

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-24
基本上是个语言都可以操作硬件。不过通常在高级语言中比如C,Vb,C#,delphi等你很难在不看说明文档就能操控的,也就是说你必须要看他们的有关这方面的文档。高级语言在对硬件操控也有很强的优势,就是他们对硬件的操控通常已经被封装过了,用起来容易些。而且,这样的高级语言编程操控硬件时,通常比较依赖系统,系统环境变量等。在不同的系统中比如Windows,Linux下对硬件的处理也是很不同的,依我个人之见,Linux下对硬件的操控更容易些。
delphi在这方面表现非常出色,主要原因是,你比较容易得到这方面的资料。
再说汇编语言,理论上,它是很强的,对于操控硬件,实际的操控效率也相当的高。但,他的编程相对难得多得多。很少有这方面的资料,一般人找不到。没有几年的功底,你是写不出来的。他的依赖性很强。有些功能还得自己做封装,以后好用。但是,你要是想做不太难的硬件控制,这个还是比较容易的。比如直接读硬盘的指定道,块,;让机器发鸣声,等等。
第2个回答  2010-03-24
我只能说, 其他语言也有可以直接操作硬件的.

比如汇编语言.
第3个回答  推荐于2017-09-19
VB不行
语言从低级到高级,语义功能越来越完善(意思是写出来的程序越来越接近人类语言),但是同时失去了对硬件的直接操纵能力,而且执行效率越来越低。
比如最低级的机器语言(全部是各种数字),没学过根本看不出是什么意思,但是对硬件操纵能力最强,想怎么让硬件做硬件就会怎么做。执行效率为百分之百。
其次是汇编语言,汇编语言稍微向英语迈进了一点,但是很有限,一般人也看不明白的,比如这句
mov a,b
谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。
而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80%,对于一直语言来说很不错了。
Basic语言完全是高级语言,代码简单,但是不具备操纵硬件能力,也就是你想写个代码直接让内存怎么怎么样,内存不听你的,只听编译好的程序的。而且执行效率也很低了。本回答被提问者采纳

c语言可以直接对硬件进行操作吗
c语言不可以直接对硬件进行操作。不可行首先,C语言不能够直接对硬件进行操作。从本质上来说,连汇编语言都不可以。只有机器语言能够直接操作硬件。其次,C语言要操作硬件是必须经过一系列的编译转换。最终它会成为0101的机械码,这个时候它根本不是我们所能够理解的C语言了。

为什么都说C语言能直接访问硬件
C语言是直接封装的汇编语言,它的封装性比起java、c#等高级语言要差很多,而汇编语言是使用的cpu等硬件的指令集,所以说C语言可以直接访问某些硬件。

C语言能对硬件直接操作是什么意思,小弟初学者,请高手解答!非常感谢...
C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。也就是说,C语言可以直接对物理地址进行操作。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。在计算机中,所有的数据都是...

关于C语言等高级语言能不能直接控制硬件的问题
当然可以了,只要把接口定义好了,就可以直接控制,各种操作系统下的驱动程序就是这么干的。

为什么说C语言是直接对硬件操作的语言?
而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80%,对于一直语言来说很不错了。Basic语言完全是高级语言,代码简单,但是不具备操纵硬件能力,也就是你想写个代码直接让内存怎么怎么样,内存不听你的,只听编译好的程序的。而且执行...

c语言可以直接对硬件操作吗
这个问题有点不好回答,现在的不管是单片机也好,数字处理器也好,图像处理器也好,基本都是C语言来写的了,但是要说C语言能不能直接操作硬件,恐怕还得分情况,因为,上面说的这些芯片都是硬件对吧,还有一些也是硬件比如,你想要控制的门,你想要控制的升降机等等,难道你能说它们不是硬件吗,但是门、...

为什么汇编和C语言可以直接控制硬件
汇编和C都要经过编译处理转化成机器语言才能控制硬件,而机器语言就是用0和1组成的代码,表示高低电平,硬件识别的是高低电平,所以汇编语言和C并不是能直接控制硬件,还要经过编译处理的。对了,当然和CPU的指令集有关了,不同的cpu的指令集稍微会有所差异,但是都会给出与一般的CPU的不同指令的资料。

c语言怎么进行硬件编程
C语言确实是有汇编的特点,但不能对硬件直接进行操作. 必须通过编译和连接后产生(.EXE)文件才可以间接操作系统.理论上是C语言编辑---编译---连接---这几个步骤后生成机械指令(这里指二进制指令)才可以间接操作系统.显示器,打印机,硬盘,键盘都是通过:C语言编写的驱动程序再调用设备的.还有别的问题吗...

汇编语言可以对硬件直接进行操作是什么意思? C语言可以吗?
因所有语言都最后要转换成机器码,因计算机只会按这机器码进行运行,而汇编语言就是这机器码的助记符(帮助记忆的符号),所以它就是直接可操作机器的语言。C语言是一种中级语言,它也可进行机器的直接操作,只是还要经过一些设置或转换才行。

C语言可以对计算机硬件进行操作吗?
可以啊,例如移位指令

相似回答