C语言中的各种语句是怎么编出来的
来源:百度知道 编辑:UC知道 时间:2024/05/24 08:05:44
我的认识是,我说的可能不正确,但是我觉得大概道理是这个:
你看编程基础的时候,会给你讲计算机最开始出现的时候,并不是发命令来控制他的,而是发一串二进制数据给电脑让电脑工作。
1.最初cpu设计时就规定了一些最简单的指令,如“加”,“减”等
而当你从总线发一串数据如“01110100”给cpu时,cpu就知道这个是用来进行
“加”的运算(这个是cpu定义好的,一收到这个东西就会作出相应的响应)
然后cpu通过硬件的一些电路进行对高低电平的处理,得出相应的结果返回回来。如返回回来的是“10010101”,计算机就知道这个是加运算的结果。
2.WHILE
语句是高级语言,开发平台会把while语句转化成相应的硬件语言(汇编指令),这些指令就是由很多加减乘除和对内存地址的分配组成的,最终转换成很多加减乘除指令传给cpu(传的也是类似“01110100”的数据流,cpu会识别它),cpu作处理后返回相应的结果
大概就是这个结果。其实就是cpu定义了最简单的指令和相对应的2进制符号表示(这些定义也是由硬件电路实现的,如cpu收到特定的东西电路才会作出相应的反应)。它的上一层是更高级的指令,这个指令可能是这些简单指令的混合使用。再上一层是这些高级指令的混合使用。一直到c语言一个while是这些混合使用的混合使用。
这就是指令的工作原理,是由最基础的东西,经过人们不断努力定义出来的
电路电平 -> 机器码 -> 汇编语言 -> 更高级的语言(如:basic、c/c++....)
我们用的C语言编译器通常只是作为一个翻译器,就是将C语言这种易于让我们理解的文字翻译成机器码
到底是先有鸡还是先有蛋?
机器能识别的语言是二进制的,比如说 1001000100100010 这样的数据被电脑cpu读取后,它会根据这列数组的上下文识别这是一个指令还是一个数值,然后进行相关操作,其实就是简单的加法,或者把一个数移动到那个寄存器里。无数个这样简单的操作实现了任务的运行。c语言通过编译器编译成机器能识别的语言。就是二进制的。