C语言是如何控制硬件的?

如题所述

1.指针变量p分配在栈上,而字符串"abcdefg"分配在文字常量区。

2.是的。指针也是编译器生成的数据类型,是个长整型。

3.内存地址分为5块,堆区,栈区,全局(静态)数据区(分为未初始化和初始化区),
文字常量区,代码区。存储在不同区域的数据释放时间不同,存储在堆区的数据必须由程序员负责释放,用free或者是delete。而栈区的由系统自动释放。全局和静态的生存期就是整个程序运行期。

4.首先,概念性错误,编译器并不执行程序,执行程序的是你的系统。编译器只是实现了高级语言向机器语言的转化而已。至于计算机的工作原理,这个概念也太泛了,有硬件层也有软件层。硬件层基本也就是80x86的汇编和内存管理,软件层也就是操作系统了,请问你想知道什么?

5.a是数组名,最重要的是a是一个指针常量,你该了解了吧,常量是不能参与指针运算的,所以a++是错的。关于calloc和malloc,释放内存方面没什么区别(这个是个人观点)。

关于指针变量没有初始化的问题。其实指针本身也是个长整行的变量,他存放的地址完全可以理解为4*8的整数,那么他的分配方式也跟普通的变量一样了。如果你是全局指针,那么编译器会把它自动初始化为00000000(十六进制),如果是局部指针,那么这个量就是未知的了,根据函数堆栈有不同的结果。null也就是内存被写成了00000000(十六进制).这个空不是说不存在,而是内存被写成了4*8=32位的全0.
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-16
如果是电脑程序的话,譬如你在vc6.0里面c语言里面编写一个程序,那么vc6里面的编译器会把你的c语言语句按照对应的关系翻译成你计算机能识别的计算机语句,然后你电脑cpu会按照这些指令来控制你的硬盘,内存读写之类的硬件操作
如果是单片机之类的话,譬如你在keil里面用c语言编写了一个单片机程序,那么keil的编译器会把你的c语言程序编写成汇编语言程序文件,然后把那个汇编程序文件烧到单片机芯片上就可以让芯片按照指令工作了

C语言是如何控制硬件的?
4.首先,概念性错误,编译器并不执行程序,执行程序的是你的系统。编译器只是实现了高级语言向机器语言的转化而已。至于计算机的工作原理,这个概念也太泛了,有硬件层也有软件层。硬件层基本也就是80x86的汇编和内存管理,软件层也就是操作系统了,请问你想知道什么?5.a是数组名,最重要的是a是一个...

计算机中软件如何控制硬件工作?
简单来说,就是C语言会被编译成机器语言,由CPU I\/O口输入,CPU其实只是做二进制加法运算。它本身不会去处理任何程序。通过基本的加法运算,将结果反馈会程序,程序通过这个值去控制其他硬件。你可以看到芯片其实有各种引脚,有些是8个一组的I\/O,有些是控制中断器,有些是计时器,电脑给引脚正电平...

C语言竟是如何调用硬件
如果把硬件平台限制在x86环境下,那么汇编指令操作硬件基本上只有两种方式: 方式一: 通过向内存空间写数据。硬件会把硬件上的各种寄存器(外行可以理解为访问硬件的接口或者操作硬件的工具)映射到某一块内存地址空间上,之后只要用汇编指令,甚至C语言去读写这一段内存地址空间(并非真正操作物理内存),就可以达到操作硬件的...

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

c语言可以直接对硬件操作吗
但是门、升降机离我们所写的C语言很远,可能有时会远到看不见,但不管这些器件或者硬件离得有多远,它们都还得听我们C语言的话不是?C语言可以直接控制这些数字芯片的I\/O口,这众多的I\/O口,就是外围终端的控制总部,所以你得分情况看你说的是直接对哪种硬件操作。我也说不准这是直接还是间接。

汇编语言编程几乎不能移植,而C\/C++等就容易移植 有点搞不明白?
汇编语言,和机器语言一样,是直接控制硬件的。每种CPU,都有自己的机器语言,所以汇编不能移植。C语言,并不直接控制硬件。在不同的机器上,有相应的编译软件,可以把C,编译成自己系统的机器语言。容易移植的关键:C语言是不直接控制硬件的。

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

C语言控制单片机的详细原理是怎样的?
所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器...

操作系统是如何控制硬件的?
二进制代码在机器里面其实使用电压的高低来表示的电压高代表1电压低代表0。有了这些知识后你再来看你提问的问题,你说在操作系统执行关机命令的时候,软件是怎么控制硬件断电的,其实在你点击关机按钮的时候,就是给操作系统发了一个命令,在计算机内部的表示形式也就是在你的点击下,里面产生了一组高低...

为什么说C语言是直接对硬件操作的语言?
其次是汇编语言,汇编语言稍微向英语迈进了一点,但是很有限,一般人也看不明白的,比如这句 mov a,b 谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80...

相似回答