我们为什么要学餐桌礼仪 我们为什么要宣传奥运冠军
创始人
2024-07-17 02:51:09
0

C是写操作系统最常使用的编程语言(译注:没有之一)。Unix是用C写的第一个操作系统。后来Microsoft Windows,Mac OS X,还有GNU/Linu也都是用C写的。C不仅是操作系统的语言,也是其它几乎所有今天最流行的高级语言的先驱和灵感来源。事实上,Perl,PHP,Python和Ruby都是用C写的。

通过类推的方式,让我们这么说你一直在学的西班牙语、意大利语、法语或者葡萄语。你想过知道点拉丁语会很有用吗?因为拉丁语是所有这些语言的基础,了解了C,你就能理解和欣赏建构在传统C之上的整个编程语言家族。懂得C,就拥有了自由。  

为什么是C,而不是汇编语言?

汇编语言提供了速度和最大的编程可控性,C提供的是可移植性。  

不同的处理器必须采用不同的汇编语言来编程,必须选择其中一种,只能学习其中一种,这太*了。事实上,面对众多的计算机架构,C的一个主要优势在于其通用性和可移植性,而将硬件层的大多控制留给了汇编语言。  

例如,C程序可以编译运行在如下设备上,HP 50g计算器(ARM处理器)、TI-89计算器(68000处理器)、Palm OS Cobalt智能手机(ARM处理器)、原始的iMac(PowerPC)、Arduino(Atmel AVR)和Intel iMac(Intel Core 2 Duo)。这些设备每个都有自己的专有汇编语言,并且完全不兼容于任何其它一个设备的汇编语言。  

汇编语言,很强大,但很难去编写大型应用程序,很难以逻辑方式去阅读和解释。C是一种编译语言,可以产生快速有效的可执行文件。C也是一个小型“所见即所得”语言:一个C语句最多对应着几个汇编语句,其它都以库函数的形式提供。  

所以这就是C是如此流行的语言的原因?  

就像推度多米诺骨牌一样,下一代的程序跟随着它的先辈的足迹。用C设计的操作系统通常都有用C设计的系统库。这些系统库反过来用于构建高级库(如OpenGL,或者GTK),这些库的设计者通常又会采用系统库所使用的语言。高级库又被应用级开发者用来设计字处理程序、游戏、媒体播放器等诸如此类。他们多数会选择采用高级库所使用的语言来编程。这种模式就这样如此如此进行...  

为什么是C,而不是另一个高级语言?

C最主要的设计是用于生成可移植代码,同时保持性能又能最小化脚印,而这本来就是“高级”接口打算在操作系统或者其它程序上发挥的作用。作为一种既稳定又成熟的语言,其特性长期来看未必会消失,而是移植到了大多(如果不是所有)的平台上。  

例如,C程序能够编译运行在这些设备上,包括HP 50g计算器(ARM处理器)、TI-89计算器(68000处理器)、Palm OS Cobalt智能手机(ARM处理器)、原始的iMac(PowerPC)、Arduino(Atmel AVR)和Intel iMac(Intel Core 2 Duo)。几乎所有流行的编程语言都至少能运行在这些设备的其中一种上,而C可能是唯一可以运行在三种以上的这些设备的编程语言。  

一个最有力的理由是内存分配。不像大多计算机语言,C允许程序员直接写内存。在C中如结构体、指针和数组,这些设计的目的就是用一种高效且机器无关的方式去构建和操作内存。尤其是,C给出了在数据结构的内存层上的控制方法。此外,动态内存分配是程序员掌控,这必然意味着内存重分配成为了程序元的负担。而Java和Perl之类的语言则将程序员从对内存分配和指针的担心之中解救出来。一般而言这是件好事,因为写高级程序时处理内存一个很容易出错的过程。然而,当处理低层代码时,例如操作系统控制一个设备的部分,C提供了一个统一清晰的接口。在其它的高级语言如Java中则没有这些性能。  

Perl、PHP、Python和Ruby这些语言可能很强大,能支持许多C缺省不支持的特性,而一般这些语言是不能用自己实现的。恰恰相反,这些语言多数最初都是依赖C(或者另一种高性能编程语言)写成,而且使用之前必须先要移植到新平台上。  

与所有编程语言一样,是否优先选择C语言要视技术和商业需求而定

【编辑推荐】

  1. C语言对象编程构思
  2. C语言中的面向对象思想
  3. C语言中的DIV的用法及DIVAB概念解析
  4. 详解Linux系统下搭建C语言开发环境
  5. 妙趣横生的算法(C语言实现)

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...