新闻报价 汽车 商家 技术 软件 驱动专业群组:手机版 房车之家 江苏汽车网 中耳炎
 
首页 新闻 报价库 经销商 驱动 软件 培训
论坛 手机 笔记本 配件 办公与网络 揭幕内参 美色美女
单机游戏 网游 手游 网页游戏开服表
软件开发培训班 软件商店 分类下载 破解注册 驱动下载 软件新闻
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏 编程开发 安全相关
  新闻首页 >> 软件新闻 >> C语言程序为什么比其他语言程序都要快?它是牺牲了什么换来的?

C语言程序为什么比其他语言程序都要快?它是牺牲了什么换来的?

珠江路在线   2019年9月9日  【 转载 】嵌入式时代 编辑:

网络上 仿佛向来有种说法:C语言程序运行时要比 其余语言编写的程序快得多,由于它“离底层机器很近”,这个说法正确吗?假如正确,那 终究是什么阻挠了 其余语言编写的程序和C语言程序一样快呢?

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

什么阻挠了 其余语言编写的程序和C语言程序一样快呢?

C语言程序快是由于它 容易

编程语言其实便是程序员与机器沟通的一门“外语”, 能够认为编程语言是为程序员和机器服务的 。事实上,在设计编程语言时, 往往需求在一些问题上取舍以寻求 均衡,天平的两端则分别是程序员和机器 。

人类和计算机的思量 模式是有很大差别的, 因而假如某种编程语言 偏袒程序员,那么可能程序员写程序会很容易,然而最后得到的程序对机器就不够 友爱了,效率会有损失 。例如 Python,JavaScript 等脚本语言 。

相反,假如某种编程语言 偏袒机器,那么最后得到的程序效率会得到最大程度的 晋升,然而这样的编程语言可能关于程序员就会不太 友爱,开发效率会有所减低 。这类编程语言以C语言,以及汇编语言为代表 。

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

开发效率会有所减低

C语言诞生时,计算机技术还不是很发达,这可能是影响“天平” 均衡的一个主要因素 。如今,新浮现的一些编程语言通常都会更加“照应”程序员,“垃圾回收”以及“动态类型”等机制 几乎已经成为标配了 。

缘由也很 容易,由于在如今快节奏(快到“浮躁”)的社会,开发效率低下的编程语言是 无奈得到 宽泛进展的 。

正如前文所说,当编程语言的“天平”向程序员 歪斜时,最后得到的程序效率自然会有所减低 。由于编程语言要“照应”程序员是要付出代价的——“垃圾回收”等机制 本身也会 消费相当一 部分的计算机性能 。 固然今日的计算机技术已经大大进展,然而计算机的运算 威力始终是有限的 。

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

计算机的运算 威力始终是有限的

而C语言也没有这些额外的机制,自然最后C语言程序的运行速度也会比别的语言程序高 。固然,这也 象征着C语言程序员需求自己治理 调配的内存,自己幸免内存溢出、 透露等问题,还要自己 解决变量的类型 。

再来谈谈C语言

设计人员在设计C语言时,更多考量的是最后C程序的运行效率, 因而像下面这样的几种安全 审查,都要依赖程序员自己,C语言 本身是不会 审查的:

  • 数组的索引边界
  • 未初始化的变量值
  • 内存是不是 透露
  • 空指针的 引用

以数组的 利用为例,Java程序设计语言会在 虚构机中进行一些 步骤调用、绑定 审查以及 其余的一些安全 审查 。这是语言 本身提供的服务,这些 审查 潜藏在底层,对开发 利用的程序员是不可见的 。然而这样的安全 审查无疑对程序员是 友爱的,由于它添加了 利用的安全性 。

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

安全 审查无疑对程序员是 友爱的

而在C语言程序开发中, 即便是一些十分琐碎的 事件也要程序员自己 解决 。例如在执行 memcpy() 等内存操作时,是不会 审查要复制的内存区域是不是有重叠的 。

C语言的这些 特点在有些程序员看来是缺陷,但 其余一些程序员却认为这是一种灵便, 能够让程序员 存在更大的权限的治理机器,以及 获得计算机的每丝毫性能 。

固然C语言号称是一种 支撑可移植程序开发的编程语言,它的一些语法也竭力实现这一 指标,然而C语言并不想 胁迫程序员以可移植的 模式编写代码,以 预防C语言成为“高级汇编语言”,毕竟编写特定于机器的代码是C语言的优势之一 。

C语言作为一门古老的编程语言,其热度却始终没有削减,自然的,C语言近些年也是得到众多进展和拓展的,从C89到C90,再到C99,C11 标准 。然而C语言始终没有偏离它的 根本 精力:

  • 相信程序员,尽量把操纵权交给程序员 。
  • 不阻挠程序员做他想做的事,例如有时数组下标为负也和意 arr[-1] 。
  • 维持语言简洁 。
  • 只提供一种操作 步骤 。
  • 维持C语言程序的高效率, 即便可能会与可移植性相悖 。

最后一句需求稍加解释:生成高效的程序是C语言的最主要的 长处之一 。为了确保看似十分 容易的操作不会招致 瓦解,C语言有时宁愿在通用 形象 规定上做出 斗争,这也是C语言 标准中有许多“未定义”的 规定 。

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

C语言有时宁愿在通用 形象 规定上做出 斗争

例如,short int,int, long int 整数类型 终究占用多少内存空间,C语言 标准并没有给出确定的定义,这就 象征着这几种整数类型在不同的机器上占用内存空间大小可能是不同的 。再 比方, 固然C语言 标准规定了 char 类型占用一字节内存空间,然而却没有定义其符号,也便是说 char 类型在有的机器上是有符号的,而在 其余机器上可能是无符号的 。

C语言的缺陷

正如前文 探讨的,C语言的“天平”更加 偏袒机器,这使得C语言程序员的工作量添加不少 。有一些 Java 程序员甚至说:“C语言程序员 花费一个月开发的程序运行需求 0.05 秒,而我 只有求一天就能开发出这样的程序,它运行 只有求 0.1 秒,所以,C语言快吗?”

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

C语言的缺陷

固然稍微 夸大了一些,然而确实应该考量这样的问题 。普通来说,C语言程序 本身确实会比 其余编程语言程序快一些,然而有些 名目确实不需求那么快,它们对 deadline 的要求更加 苛刻,这时可能C语言就不再那么 适合了 。

因而,C语言程序的效率确实高,但它是以 就义程序员开发效率换来的 。这其实决定了它与 其余编程语言的 利用领域,假如 谋求资源 消费以及效率的极致,那么C语言无疑是最佳的 取舍 。这个领域以嵌入式领域为代表 。假如 名目更多 谋求的是开发效率,那么C语言显然就不是 适合的人选了 。

C语言程序为何比
其余语言程序都要快?它是
就义了什么换来的?

点个赞再走吧

欢送在评论区一同 探讨,质疑 。文章都是手打原创,天天最 通俗的介绍C语言、linux等嵌入式开发,喜爱我的文章就关注一波吧, 能够看到最新更新和之前的文章哦 。

未经许可,禁止转载 。



 按类别看新闻
电脑
数码
办公
网络

 江苏IT新闻联盟

 网游推荐
奇迹 传奇搜服 天龙八部3搜服 天龙八部搜服 新开传奇 奇迹mu搜服 传奇世界3官网 传奇吧 单职业传奇 传奇世界搜服

工具:
成语大全 菜谱大全 邮编区号 全国地图 公交查询 火车时刻表 汉字换拼音 繁体字转换 二维码 | 站长工具:收录/反向链接 ALEXA排名 关键词排名 WHOIS
教程:
Flash Dreamweaver Photoshop | ASP PHP | ASP.NET Java | SQL MySQL 热门搜索:内参 游戏 美食 美女 魔域 天龙八部 DNF 传奇 传奇世界
游戏:

传奇世界 新开魔域 新开传奇网站 奇迹 DNF公益服 热血江湖 DNF 天龙八部 冒险岛 传奇世界 魔域 传奇 奇迹 单职业 天龙 魔域变态版 征途 DNF 天龙八部

论坛:

手机 笔记本 配件 办公与网络 | 户外摄影 美食天地 美色美女 揭幕内参 | 游戏热点 冒险岛 传奇 天龙八部

驱动下载:显卡 声卡 网卡 主板 打印扫描
加入官方微信号
渠道报价/招聘
任你发任你查
Copyright 2019 www.zhujiangroad.com All Rights Reserved.
南京网爵数码科技有限责任公司版权所有 版权所有 苏ICP备05016148号
关于我们 | 手机版 |  收藏夹 |  南京地图 | 站长工具 | 中耳炎.中国