您的位置:js12345金沙官网登入 > 网络编程 > 从语言层次的角度看为什么要精通C语言

从语言层次的角度看为什么要精通C语言

2019-10-02 10:00

图片 1

谈到C语言,很多人的第一反应就是定义变量、if...else...等这些细节语法,然而更应该时刻不能忘记的就是它在编程世界中的位置。前者那些是语法细节,后者是更需要一种宏观认识,才能对它理解的越来越深刻。为什么有句话说“十年都不敢说精通C语言”是有一定的道理的。所以,这里从宏观上来看待C语言。

谈到 C 语言,很多人的第一反应就是定义变量、if...else...等这些细节语法,然而更应不能忘记的是它在编程世界中的位置。

编程语言一开始是由0101这些机器码编程开始的,那时候的编程的确是一种只有高智商的人方可做的工作,因为你得背诵一堆堆的指令,如:ADD指令假设为10011100,这你得记住!所以,这样的编程要麻烦的多,也不利于普及,人数力量有限,就不能把功能做的太强大。

C语言是面向过程的,而C++是面向对象的

所以前辈们根据社会需求改进了,提供了最初的翻译器:汇编。这样人们不再需要写机器指令如:10011100,而只要写ADD,通过汇编工具就可以把ADD转换成机器码,从而简化了编程,这是最初的为人而做的编程语言:汇编语言。然而这种语言还不能解决一个事情,那就是你写的指令是由机器CPU的指令系统决定的,言下之意,不同的CPU指令系统就决定了你写的指令是不一样的。也就是移植性的问题,这个不是汇编语言产生的,而是本来就有的,汇编只是还没解决。

C和C++的区别:

移植性的问题不解决,那么同样的软件在不同的平台就得又要重新写一套,甚是麻烦。

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出控制)。

所以更上层的编程语言就应该出现了,这就是C语言。它解决了CPU指令系统的跨平台,但是越来越多的对硬件的操作,都被封装为各种各样的驱动,由操作系统来承载,所以现在的跨平台不但是要CPU指令系统的跨平台,还要包含操作系统的跨平台。这样就要继续产生更高级的跨平台,如:java。java是通过弄出中间字节码的方式(而不是最终的二进制的方式)来实现更完美的跨平台。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

虽然是功能上解决了,但是牺牲的却是代码质量。兼容性越好,需要考虑的异常就会越多,容错性也就要做的更好,代码则会更多,这样又对编译器的功能要求越来越强大,功能强大则意味着性能会降低,就像整体的效率是由串联电路上的多个关键环节共同决定,最差的那个环节决定了整体的效率。因此越是上层的编程语言,性能势必越低下。表现为:功能强大的东西需要底层语言来开发。所以游戏行业的引擎是不宜用PHP和JAVA来开发的,都是用C/C++来开发...否则就会卡到死...同理,安装软件和APP中很卡的软件,就是因为用上层语言来开发而导致了无法解决的性能问题。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

所以,不管是人们追求的火热行业:嵌入式,移动互联网,物联网,云计算,大数据,这些的性能要好,就得是C/C++去支撑。更多技术行业,水到深处,就是落实到C/C++了。

图片 2

如:导弹的航行速度8000米/秒。试想你的程序如果有0.1秒的误差,那么你将会误差800米,这就不是指哪打哪,而是指东打西了,打的牛头不对马嘴。

有句话说“十年都不敢说精通C语言”,是有一定的道理的。所以,这里从宏观上来看待 C 语言。

差之毫厘谬以千里,这句话在编程效率和性能领域内比比皆是。

编程语言一开始是由 0101 这些机器码编程开始的,那时候的编程的确是一种只有高智商的人方可做的工作,因为你得背诵一堆堆的指令,如:ADD指令假设为10011100,这你得记住!

现在追求的是速度,速度,还是速度!!!

图片 3

1:性能对比参考:

这样的编程要麻烦的多,也不利于普及,人数力量有限,就不能把功能做的太强大。所以前辈们根据社会需求改进了,提供了最初的翻译器:汇编。

效率最高的是机器语言。其性能大概是汇编语言2倍;而汇编语言又是C语言2倍;而C语言又是C++的1.5倍;C语言是JAVA的5倍;

人们不再需要写机器指令如:10011100,而只要写 ADD,通过汇编工具就可以把 ADD 转换成机器码,从而简化了编程。

如果从速度上来看:机器语言执行1秒,汇编语言要2秒完成,C语言要4秒完成,C++要6秒,JAVA要20秒完成,黄花菜估计都凉了。

然而这种语言还不能解决一个事情,那就是你写的指令是由机器 CPU 的指令系统决定的,言下之意,不同的 CPU 指令系统就决定了你写的指令是不一样的。也就是移植性的问题。

语言越高级,速度越慢;

移植性的问题不解决,那么同样的软件在不同的平台就得又要重新写一套,甚是麻烦。所以更上层的编程语言就应该出现了,这就是C 语言。

2:语言的层次发展汇总:

C 语言解决了 CPU 指令系统的跨平台,但是越来越多的对硬件的操作,都被封装为各种各样的驱动,由操作系统来承载,所以现在的跨平台不但是要 CPU 指令系统的跨平台,还要包含操作系统的跨平台。

图示:

图片 4

图片 5

小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

3:C语言地位...

这样就要继续产生更高级的跨平台,如:java。java 是通过弄出中间字节码的方式(而不是最终的二进制的方式)来实现更完美的跨平台。

C语言的核心地位从这里可以看到,它是其他语言如:C++以及更高级语言的基础语言。C语言学不好,C++难精通,C/C++学不好,JAVA难精通,PHP同样难精通,JS同样难精通,数据结构和算法的必学基础课...linux操作系统难把握。这些都是连贯到一起的,就像应聘PHP高薪的职位,别人不是考你PHP的语法,而是问你linux操作系统,数据结构,Nosql这些去了。

本文由js12345金沙官网登入发布于网络编程,转载请注明出处:从语言层次的角度看为什么要精通C语言

关键词: