再过两年,C语言将迎来它的 50 岁生日,同样进行周年庆的还有 PL/M和Prolog。不过,C语言至今仍然非常受欢迎,它在几乎所有编程语言中的受欢迎程度,始终排在前十名。


 

大多数操作系统的内核(包括 Windows,MAC,Linux,IOS 和 Android 等)都主要由使用C语言实现。此外,python 的 C Python 解释器,perl,ruby,差不多一半的 R 语言,以及 mysql 的 MysAm 代码,甚至 java 的第一个编译器都是使用C语言编写的。


 

C语言和C++打了个平手

C++ 在 C语言的领域中取得一些进展,特别是自从 C++11 中增加了移动语义,如果能够正确使用该语法,在处理指向大对象的指针时,C++能以更小的开销,带来更好的性能,并且C++也能够在传统的嵌入式C语言领域使用。


 

但是,C++程序代码编译后通常还是会比C语言的大一点,因为C++增加了异常处理,以及内联模板等C语言没有的机制。例如在 Visual C++的 release 模式编译下面这段C++代码:

最终得到的 exe 可执行文件的大小达到 10752 字节。再来编译相同功能的 C语言代码:

得到的 exe 可执行文件大小为 9216 字节,只有 C++ 程序的 85%。这里的差别还不是特别大,但是可以肯定的是,使用C++编程时,一旦加入了其他类,它与C语言程序大小的差异会越来越大。


 

代码大小非常重要,因为物联网(IOT)设备的数量越来越多,微控制器的使用也越来越多,要知道这些微控制器的 RAM 和 ROM 通常都是千字节级别的。所以在嵌入式领域,C语言在2005年至2018年期间获得的市场份额实际上是有所提升的。

C语言是编程界的通用语言

就像现实生活中,英语是世界是的通用语言一样,C语言是编程语言界的通用语言。许多其他编程语言编译器输出的其实是 C 语言代码,由C语言编译器进一步生成可执行程序。这不难理解,因为C语言是最低级别的可移植语言。(唯一更低级别的汇编语言与 CPU 紧密相关,不方便移植。)

Github 项目页面上列出了大约 60 个开源编译器,一小部分是 C++ 的,但是C语言占绝对的主导地位。


 

使用C语言提升效率

python 是如今最流行的编程语言之一,但是因为它是解释型编程语言,同时也受它的动态变量的影响,所以 python 程序的运行效率一直是一个痛点。使用过 python 进行大数据处理的朋友应该知道 numpy、scipy 等库可以提升效率,而 numpy 库就是由 C语言实现的。python 的标准实现是 C Python,它的主要库也是由 C语言(少许C++)实现的。

C语言是“九阳神功”

C语言可能不是每个编程初学者想学的第一编程语言,但是作为第二、第三编程语言,C语言一直很流行。我把它看做编程界的“九阳神功”,学会C语言后,再学其他编程语言都如有神助。


 

小结

至少在底层硬件设备驱动层,C语言还未逢对手。另外在操作系统内核开发中,C语言也几乎是唯一选择,特别是在 Linux 上,C语言还将存在很长一段时间。超过一半活跃的 Web、 服务器运行的是 Apache 和 nginx,它们都是C语言编写的,如今已经存在近 50 年了。

自学C/C++不易,此路应携手前行。

如果你想跟着小编一起学编程的话!

可以来我的C语言/C++编程学习基地,【点击进入】!

还有(源码,零基础教程,项目实战教学视频)【进入领取】!   


 

 

标签智能推荐:

这些吧

并没有多大的兴趣,第二我真的对计算机啥也不懂,就算是在学校里学过,过后两年加四个月不碰(往届考生)谁不忘啊。但是吧,计算机这个行业他挣钱,然后我父母就冲着这一点强行然我报考了咱们学校的计算机专业,还是第一志愿第一专业后边才是我喜欢的专业,当时老师看了我的志愿之后就说你这第一个就走了也不冲一下,不过我能有什么办法呢,毕竟百善孝为先吗,父母这么想也是以后为了我好。然后果然不出我所料的就进了咱们学校。大

C语言 define 防止头文件重复包含 - C语言零基础入门教程

参考文章:VisualStudio设置文件版权信息四.猜你喜欢C语言数组下标越界和内存溢出区别C语言指针声明和定义C语言指针p++/p–C语言p++/§++/_(p++)/_p++C语言使用指针遍历数组C语言指针和数组区别C语言指针数组和数组指针区别C语言空指针NULLC语言void指针C语言野指针C语言函数值传递和址传递C语言函数缺省参数C语言函数不定长参数C语言函数指针C语言指针函数C语言回调

从零开始学编程01--选择你编程语言

学在初入编程时,往往存在一个这样的疑惑,我到底该选择哪一门语言开始学习呢?特别是一些非科班准备自学的同学,选择一门合适的编程语言往往会让自己的编程之路更加顺畅。首先,要明确一个概念,没有最好的编程语言,只有最合适的编程语言。每种正在市场上流行存在的编程语言都有其独特的特点与优势,实际上,大部分的互联网大公司,不同的业务部门、同一业务部门的不同岗位,往往都不是采用单一的编程语言完成的。这里主要介绍的

聊聊各种语言

p;C语言有什么优点? 可移植性:C语言是高度可移植的,你在不改动或者只做很小改动的情况下,就可以把C语言的程序运行在不同平台;C语言很小:C语言完全基于变量,宏命令,函数和架构,整体非常小,因此C语言可以嵌入几乎现代所有微型处理器中,从冰箱到闹钟;学会C学会一切:几乎所有编程语言都由C语言实现,或者有着和C语言一样相似的语法和逻辑规则,因此,学会C语言能使你很快学会其他语言。&nbsp

再次写给VC++ Windows开发者

很多其他语言来说C++语言本身已经不能与C相提并论了,虽然很多书宣称学会了C再学C++很容易,但现在看来这是忽悠各位上“C++贼船”的宣传而已。如果你真的这么天真的以为靠学校那点C语言的基础就可以轻松驾驭C++,那么你真的错了。如今C++语言已经承载了很多时代IT新生语言的特色,比如面向对象,只4个字已让C++扩充了C语言n倍以上的知识点,再比如到现在的C++2011中的伦巴达表达式(使用VS20

让人又爱又恨C语言

。这恰好是学C语言的一大好处——可以深入了解计算机底层运行机制。现在常见的高级语言的底层几乎都是C语言实现的,所以,无论是学什么高级原理,要想掌握其内部原理,借助C语言就可以轻松了解。  一、怎么学习C语言那该如何学C语言呢?希望我整理的C语言的学习路线,能对你有帮助!首先是C语言的基础语法:变量、字符串、条件、循环、数组、函数、结构体等,然后就是指针、内存管理等C语言中至关重

IT界是丽春院?

做IT的是吃青春饭的,理由就是IT技术日新月异,发展很快,旧的技术会很快被淘汰,过时,因此掌握老技术的老人也就过时了,应该被淘汰了。真的是这样?首先,技术日新月异是事实,各种框架,各种语言层出不穷。但是万变不离其宗,C,C++,JAVA,C#,python,只是工具而已,软件的核心不是语言,而是数据+算法,学过软件的都知道,这是经典名言。领域知识融在数据和算法中。其次,发明这些技术的都是资深IT人

为什么要有这么多高级语言

不同的变速箱在开车的整个过程中的效率不一样,偏重不一样。第二个原因是,开车的人不一样。这就涉及到一个问题,语言的作用?我觉得语言是思考的载体,是沟通的载体。人是一种高级动物,让我们成为高级动物的关键原因是,人类产生了语言,产生语言的最关键作用不是在于人可以相互沟通,有组织协调性,而在于语言能够增强人类思考的强度。想一想,如果你不用语言思考问题,你怎么思考问题呢,原始的方式应该是图像式思考,但是图像

GO语言: 双单链表、队列、进出栈打造一个简易数据结构库 以及测试你程序是否存在BUG!

放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。个人体验感受以及如何入坑:前面介绍的肯·汤普逊(KenThompson) 是谁?如果不是计算机专业或行业内可能没听过,但是计算机教科书一定会出现一个名词“贝尔实验室”,没错就是那个传奇计算机研究中心中最高的殿堂。像大名鼎鼎的C语言和UNIX操作系统,目前的计算机系统亦或是安卓苹果系统都是基于,这个编程语言语言和操作系统

Python既然这么火,为什么找工作那么难找呢?

就有了的。而这两年又因为人工智能的火爆,教育部门对人工智能的重视,Python爱好者的借势,把Python推到了一个新的高度,这让很多人误以为学Python像学Java一样只要努力三四个月就能找到工作的错觉。百度搜索指数里,Python搜索指数从2011年开始一直是平滑增长,从2017年开始超过Java,而Java基本没啥变化,甚至有下降的趋势。说真的,大部分Python开发者的一门语言都不是Py