为什么C语言的执行效率高,运行快?

目录
简述c语言由来bcpl语言及代码b语言以及代码c语言编程语言机器语言汇编语言高级语言c为何快速简述都说c语言编写的程序执行效率比较高,那么到底高在哪里,我们一块来学习学习。
c语言由来c语言源自于bcpl、b两种语言。
bcpl语言以及代码1967年,剑桥大学的马丁·理察德(martin richards)以cpl编程语言为基础,发明了bcpl(basic combined pogramming language)编程语言。
我们在看一个用bcpl语言编写的计算阶乘的功能,代码如下:
get libhdrlet start() = valof{ for i = 1 to 5 do writef(fact(%n) = %i4*n, i, fact(i)) resultis 0}and fact(n) = n=0 -> 1, n*fact(n-1)get libhdr是包含标准库,let start() = valof是程序运行时要调用的第一个函数。空括号()表示函数不需要任何参数,valof表示函数有返回值。
for i = 1 to 5 do是一个从1到5的循环。writef是字符格式化字符串函数,用来输出将i替换%n、fact(i)替换%i4格式化之后的字符串。*n表示换行,resultis 0是返回值,用来告诉系统函数执行成功。
and fact(n) =介绍了函数fact的定义,通过接受一个参数来实现n的阶乘。
n=0 -> 1, n*fact(n-1)则是阶乘的实现,当n等于0时候,返回1(0的阶乘是1),当n不等于0的时候则返回n*fact(n-1),
and原文是下面这样说的,如下:
the word and causes fact to available to the previously defined function
我的个人理解是支持嵌套,那么你认为呢?
当上述功能执行后将会在终端有如下输出:
fact(1) = 1fact(2) = 2fact(3) = 6fact(4) = 24fact(5) = 120bcpl用户指南:https://www.cl.cam.ac.uk/~mr10/bcplman.pdf
b语言以及代码肯·汤普逊(ken thompson)简称“ken”,在贝尔实验室工作期间设计和实现了unix操作系统。他基于bcpl创造了b语言。
同样的,我们来看一个用b语言实现进制转换功能。输入一个n转换为b进制,其中b在2和10之间。
/* the following function will print a non-negative number, n, to the base b, where 2<=b<=10, this routine uses the fact that in the anscii character set, the digits o to 9 have sequential code values. */printn(n,b) { extrn putchar; auto a; if(a=n/b) /* assignment, not test for equality */ printn(a, b); /* recursive */ putchar(n%b + '0');}代码出处:https://www.bell-labs.com/usr/dmr/www/kbman.html
c语言在1972年,美国贝尔实验室的丹尼斯·里奇(d.m.ritchie)在b语言的基础上设计出了新的言,他取bcpl的第二个字母作为这种语言的名字,这就是c语言的由来。
以下是用c语言实现的进制转换功能。
#includevoid printn(int n, char b) { char a; if(a=n/b) { printn(a, b); } putchar(n%b + '0');}int main(int argc ,char **argv) { printn(8, 2); return 0;}terminal: 1000跟b语言非常接近了吧。
编程语言机器语言是二进制文件,汇编语言是符号语言,再往汇编之上是高级语言。下图是c编写的源文件,经过汇编和链接生成的汇编文件以及二进制文件。
机器语言机器语言是一种指令集的体系,它是用二进制代码表示的语言,是计算机唯一可以直接识别和执行的语言,它具有计算机可以直接执行、简洁、运算速度快等优点,这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍,而且直观性比较差,容易出错,程序的检查和调试都比较困难。
汇编语言为了解决机器语言难以理解和记忆的缺点,于是就出现了汇编语言。用易于理解和记忆的名称和符号表示机器指令中的操作码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言;于是汇编语言亦称为符号语言。
高级语言高级语言又主要是相对于汇编语言(机器语言)而言的,它是高度封装了的编程语言;是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。
例如java,c,c++,c#,python都是高级语言。
c为何快速越高级的语言,越人性化,机器负担就重。因为机器帮你处理了常见的问题,需要一些额外开销。而c语言是一门非常干净的语言,相当于裸奔,被设计之初就将速度大于安全之上,它不会检查数组索引是否会越界,不会检查内存是否泄漏,也不会检查指针是否是野指针。
在制定c标准时指出c代码是能够可移植的,但是如果要为了更快的执行效率,可以牺牲可移植性。c完全相信程序员,不会阻止程序员要做的事情。
c语言经过编译优化生成的机器码和和直接写汇编生成的机器码是相当的,所以c非常高效。
end

关于车载智能语音控制系统哪个效果好
展望MEMS和传感器技术在汽车行业中的未来发展动态
德国人工智能战略
汽车大灯设计的发展趋势:超薄大灯正逐渐替代传统大灯
极光尔沃海外市场再发力 与波兰客户携手参展
为什么C语言的执行效率高,运行快?
在单向车载充电器中使用碳化硅进行设计
博通公司通过嵌入式设备互联网无线连接产品加速可穿戴设备市场业务
一加7系列将首批适配Android Q Beta版本
苹果开发新屏幕技术迫在眉睫,Micro LED在逐步推进中
浅谈极细同轴线连接器的同轴线基本结构
MGA-16516匹配对低噪声放大器的LNA设计解析
DC-DC模块的电源纹波测量方案
国产芯业绩亮眼 这些厂商的秘籍是什么
中国联通“越南”运营有限公司正式成立
看看你是否上榜,兰和智能锁帮你解决!
历时24个月,300人研发团队,vivo发布VI ISP芯片!手机摄影进入硬件级算法时代
海尔生物业绩持续改善 成功“圆梦”科创板
2018年12月破产清算后首次发布新品,预示着金立即将“复活”?
UPS电源的运作框图