再过两年C语言就50岁了,这么老的编程语言怎么还没有过时?
再过两年,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语言就50岁了,这么老的编程语言怎么还没有过时?的更多相关文章
- 有感于三个50岁的美国程序员的生活状态与IT职业杂想
前言 这篇杂记其实是去年也就是 2013年9月30日写的,还上过博客园十日推荐的首页,后来在整理博客分类时七弄八弄误删掉了好多文章,就包括这一篇.今天,2014年9月29日,恰好恰好一年的时候居然在好 ...
- 转载——有感于三个50岁的美国程序员的生活状态与IT职业杂想
明天就是国庆节了,今天也不想干活干的太累了!写一篇以前去美国出差的杂想,对比于美国50多岁的程序员和大多数50多岁国内父母的生活状态有感而发. 前几年正好有一个项目的机会出差去了一次美国,地点是美国中 ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- 35岁的程序员正在消失?No,我认识了一个50岁的程序员!
35岁的话题真是无穷无尽.一开始的时候,以为只有社交媒体上会有这种问题的讨论,没想到,公司内部的论坛上也有不少这类的文章.大家各有各的说法,但终究也没有找到银弹似的解决方案. 这段时间,倒是接触了一个 ...
- C语言程序设计50例(经典收藏)
本篇文章是对C语言程序设计的50个小案例进行了详细的分析介绍,需要的朋友参考下 [程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十 ...
- 学习C++语言的50条忠告
50条忠告:(其中有几条觉得写的不够贴切,所以删了,发了余下的部分) 1.把C++当成一门新的语言学习: 2.看<Thinking In C++>,不要看<C++变成死相>: ...
- C语言程序设计50例(三)(经典收藏)
[程序31]题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母.1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母. ...
- C语言程序设计50例(二)(经典收藏)
[程序11]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1 ...
- 哥德巴赫猜想证明(C语言实现50以内的正偶数证明)
<一>哥德巴赫猜想内容: 一个充分大的偶数(大于或等于6)可以分解为两个素数之和. <二>实现要点: 要点: 判断素数(质数):除了1和本身没有其他约数. 最小的质数:2 判断 ...
随机推荐
- iTextSharp生成PDF文件
这是一篇简单的教程,所以只涉及一些iTextSharp生成pdf的简单应用,详细教程请搜索iTextSharp进入官网看官方文档(英文版). iTextSharp官方文档:https://itextp ...
- leetcode题目,个人见解1
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ...
- python 3 for嵌套
- Python爬虫和函数调试
一:函数调试 用之前学过的try···except进行调试 def gameover(setA,setB): if setA==3 or setB==3: return True else: retu ...
- VUE3.0发布,自己搞个文档网站
9月19日,尤大神发表了VUE3.0版本的演说,强大且震撼,这两天一直在找网站文档,可能还未被百度收录,未找到文档网站.后来在github上面找到了中文代码. 地址为:https://github.c ...
- Powershell编程基础-001-基本语法
变量的定义:$a="abc" 变量的引用也是echo $a 注释: 1.单行注释:单行注释是在每行的开头键入井号#的注释. #符号右边的所有内容都将被忽略,也可以在 ...
- React使用AntV G6实现流程图
安装 npm install @antv/g6 --save 引用 import G6 from '@antv/g6' 自定义节点 /** * 方式一 */ G6.registerNode('rect ...
- 刷题[HCTF 2018]WarmUp
解题思路 进入页面之后,一个大大的滑稽. 查看源码 查看源码发现有source.php .打开 发现还有一个hint.php.打开发现 由此可知是代码审计了 解题 代码审计 先看此段代码,大致意思是. ...
- chrome禁止三方cookie,网站登录不了怎么办
背景 新版chrome(80+)浏览器默认屏蔽所有三方cookie已经不是什么新闻了,具体原因这里不去深究,有大量相关文章介绍,由于目前许多网站都依赖三方cookie,因此该特性的推出还是造成了一些的 ...
- 在vue中使用天气插件
在vue中使用天气插件 插件网址: 中国天气 选择自己需要的插件.生成代码复制即可 在 vue 中的使用: template 中 <div id="weather-v2-plugin ...