C语言能对硬件直接操作是什么意思,小弟初学者,请高手解答!非常感谢!!!

如题所述

C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。也就是说,C语言可以直接对物理地址进行操作。

学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。

在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时, 银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-23
就是直接操作内存。

因为计算机最终是按位bit存储在内存中的。
c语言可以直接对内存中的数据进行复制,移位等操作本回答被提问者采纳
第2个回答  2009-04-23
实际上,从单片机角度考虑,c语言对硬件比如通讯端口的操作都是指对硬件地址进行操作,为了方便代码的编写和阅读,地址经常在*.h中作了宏定义,因此,编成过程中对硬件的操作,类似于对变量的操作。
第3个回答  2009-04-23
也就是可以直接修改硬件信息。如指针,文件操作等。
建立文件:
FILE* pf;
pf = fopen("1.txt", "w+");//为写打开文件!
if(pf == NULL)
exit(1);//文件打开失败!!。。。。。。。。

。。。
fclose(pf);//关闭文件。。
第4个回答  2009-04-23
就是直接读写硬件的寄存器
eg:
int temp;
temp = *((int *)addr0);

这就是读取硬件地址addr0中的数据赋值给temp

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

为什么说C语言是直接对硬件操作的语言?
a,b 谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80%,对于一直语言来说很不错了。Basic语言完全是高级语言,代码简单,但是不具备操纵硬件能力,也...

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

c语言可以直接对硬件操作吗
C语言可以直接控制这些数字芯片的I\/O口,这众多的I\/O口,就是外围终端的控制总部,所以你得分情况看你说的是直接对哪种硬件操作。我也说不准这是直接还是间接。

C语言竟是如何调用硬件
c语言在实际运行中,都是以汇编指令的方式运行的,由编译器把C语言编译成汇编指令,CPU直接执行汇编指令。 所以这个问题就变成,汇编指令是如何操作硬件的? 如果把硬件平台限制在x86环境下,那么汇编指令操作硬件基本上只有两种方式: 方式一: 通过向内存空间写数据。硬件会把硬件上的各种寄存器(外行可以理解为访问硬件的...

“c语言允许直接访问物理地址,能进行位操作”是什么意思啊
计算机中的数据都是以位(bit,比特)来作为基本单位的,C语言能直接对位进行操作,包括求与,并,或,异或,非等。物理地址是一个很宽泛的概念,磁盘,内存等存储设备都有物理地址的说法。物理内存地址指的是硬件实现上物理内存展现给外部总线访问的编码地址,其范围等于物理内存的大小.大家常说的物理...

电脑开机就要出现这个问题,麻烦高人指点!小弟是电脑小白
在C语言中包含了一个简单的检验\/恢复系统,称为setjmp\/longjmp。意思是在检验点设定“setjmp(buffer)”,用“longjmp(buffer)”来恢复检验点。然而,如果攻击者能够进入缓冲区的空间,那么“longjmp(buffer)”实际上是跳转到攻击者的代码。象函数指针一样,longjmp缓冲区能够指向任何地方,所以攻击者所要做的就是找到一个...

网络c语言是什么梗
“CAO”是“羽女双c语言教学”的最新解释,微博博主“谐音梗研究所”说到,“中国运动员喊的‘CAO’实际上是‘Champion At Olympics’的缩写,‘我CAO’的意思是“我要拿奥运冠军。”除此之外,还有网友解释到,“运动员喊的‘CaO’是氧化钙也就是生石灰的化学式,向对手表达她们‘粉骨碎身全不怕...

学了c语言,再学什么可以给硬件编出程序?
这种情形下,C语言就难以胜任了,因为硬件电路的逻辑与“冯诺伊曼”式计算机的根本原理是不同的。为了能够表达复杂的数字逻辑,产生了像Verilog、VHDL这样的硬件描述语言。所以如果你所指的“给硬件编程”是指这一类硬件的话,那么上述的两种语言之一,是必然要学习一下的。希望能对你有所帮助。

对于QT与linux的迷惑,求前辈赐教!
我也是学嵌入式的,说嵌入式的大部分语言是用C写的应该指的是用C语言直接操作硬件完成硬件驱动或操作系统一样的功能。也就是说用C写的嵌入式程序一般是最底层的直接和硬件打交道的。我们也知道Qt这东西只能跑在操作系统上,因此当你决定用Qt开发界面的时候C部分你就不用管了,你也管不来。除非你...

相似回答