C语言为什么可以被CPU直接执行

为什么只有C语言具备这样的类似汇编语言的特征?为什么其他高级语言就不行?

  C语言是不可以被CPU直接执行的,CPU能执行的只有二进制机器码,因此C语言写的源码需要经过预处理阶断、C语言编译阶断、汇编阶断和链接阶断之后,生成的可执行文件才可以被CPU所执行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-14

c语言是不能直接被执行的

你从哪里听说c语言是被直接执行的?


编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言汇编语言高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 目前通用的编程语言有两种形式:汇编语言和高级语言。


由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。

追问

额 刚提了个问 别人是这么跟我说的~ 难道是我理解有误?
除了高级低级之外,还有另外一种区分语言的方式,解释语言与编译语言。

编译语言:源代码经过编译之后生成的可执行文件,文件的内容能够直接被CPU识别,并且运行。这种语言生成的程序由于CPU就可以直接识别了,所以不需要任何其它工具。但程序对CPU的依赖性很大,换一个架构可能就需要重新编译甚至重新编写程序。
汇编和C都属于这一种。

追答

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

C
语言程序的步骤:

1.编辑
(把程序代码输入,交给计算机)


2.
编译(成目标程序文件.obj)


编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

追问

编译这一步是程序猿写好了之后马上就自动编? 还是在客户端上进行的?

追答

编译:将源代码转换为机器可认识代码的过程。
编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。

C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件

追问

既然可执行文件生成时就已经被编译过了 so 用户拿到手的用C语言编的可执行文件无需编译就可被CPU直接读取? 对吧

追答

你再问详细我也不懂啊
反正c语言直接给cpu cpu是不认识的 cpu 只认0101

本回答被提问者和网友采纳
第2个回答  2014-08-15
不可以直接执行,c语言要先经过编译器编译成汇编语言,再转成机器码才能被CPU执行追问

这个过程是在用户的电脑上进行的吗? 还是在编完之后的时候就转成了汇编或者机器语言 然后 用户拿到手的程序 无需编译就可直接执行?

追答

看你运行在什么操作系统,假如是单片机,是直接写入机器码,而window系统就是生成可执行文件exe,至于要不要编译,你问微软吧。汇编CPU也不懂得,必须是机器码才能识别。

追问

什么是单片机... ←_←

相似回答