为什么说C语言是直接对硬件操作的语言?
展开全部
VB不行
语言从低级到高级,语义功能越来越完善(意思是写出来的程序越来越接近人类语言),但是同时失去了对硬件的直接操纵能力,而且执行效率越来越低。
比如最低级的机器语言(全部是各种数字),没学过根本看不出是什么意思,但是对硬件操纵能力最强,想怎么让硬件做硬件就会怎么做。执行效率为百分之百。
其次是汇编语言,汇编语言稍微向英语迈进了一点,但是很有限,一般人也看不明白的,比如这句
mov
a,b
谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。
而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80%,对于一直语言来说很不错了。
Basic语言完全是高级语言,代码简单,但是不具备操纵硬件能力,也就是你想写个代码直接让内存怎么怎么样,内存不听你的,只听编译好的程序的。而且执行效率也很低了。
语言从低级到高级,语义功能越来越完善(意思是写出来的程序越来越接近人类语言),但是同时失去了对硬件的直接操纵能力,而且执行效率越来越低。
比如最低级的机器语言(全部是各种数字),没学过根本看不出是什么意思,但是对硬件操纵能力最强,想怎么让硬件做硬件就会怎么做。执行效率为百分之百。
其次是汇编语言,汇编语言稍微向英语迈进了一点,但是很有限,一般人也看不明白的,比如这句
mov
a,b
谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。
而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80%,对于一直语言来说很不错了。
Basic语言完全是高级语言,代码简单,但是不具备操纵硬件能力,也就是你想写个代码直接让内存怎么怎么样,内存不听你的,只听编译好的程序的。而且执行效率也很低了。
展开全部
其它语言最终对硬件操作并不是这种语言完成的,而是由计算机操作系统(如windowsxp)来完成的。
如int
a=5;并不是对地址在操作,而是由操作系统自动分配了个地址来存放a,你也不知道这个地址确切是多少
c语言接近硬件是指它可以直接用指针访问硬件地址。如:malloc,new函数
int
*p;
p
=
new
int;
//返回类型为int*
类型(整数型指针),分配大小为
sizeof(int);
int*
p;
p
=
(int
*)
malloc
(sizeof(int));
然后就可以对这个指针指向的内存地址进行赋值等操作
如int
a=5;并不是对地址在操作,而是由操作系统自动分配了个地址来存放a,你也不知道这个地址确切是多少
c语言接近硬件是指它可以直接用指针访问硬件地址。如:malloc,new函数
int
*p;
p
=
new
int;
//返回类型为int*
类型(整数型指针),分配大小为
sizeof(int);
int*
p;
p
=
(int
*)
malloc
(sizeof(int));
然后就可以对这个指针指向的内存地址进行赋值等操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的描述不准确,C语言直接对硬件操作的例子比如直接通过C语言写入芯片的控制寄存器,配置芯片的工作模式,达到用户希望的效果,如定时器。这一点类似于单片机。
对内存的操作事实上还是由更低级的存储器控制芯片完成的。
对内存的操作事实上还是由更低级的存储器控制芯片完成的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询