美文网首页
【译】为何学习C语言

【译】为何学习C语言

作者: 不惜留恋_ | 来源:发表于2017-02-23 18:36 被阅读40次

    本篇翻译自:https://en.wikibooks.org/wiki/C_Programming/Why_learn_C%3F

    概要

    C 语言普遍用来写操作系统。 第一个用 C 语言写的操作系统是 Unix,后来的 GNU/Linux 操作系统也是用 C 写的。 C 语言不仅是用来写操作系统,它还是现在流行的一些高级语言的先驱和灵感来源。实际上,Perl, PHP, Python 和 Ruby 都是用 C 写的。

    为什么是 C ,而不是汇编语言(assembly language)?

    汇编语言优势在于速度 以及 对程序的控制力,而 C 优势在于可移植性。
    不同的处理器使用不同的汇编语言,如果我们仅仅学习其中一个,也只是杯水车薪。 实际上,C 的主要优势之一是它在各种计算机体系结构中结合了通用性和可移植性,同时保留了汇编语言提供的硬件的大部分控制。

    例如, C 程序可以编译和运行在各种不同的处理器上,例如 ARM 处理器,Intel Core 处理器。 而这些设备都有自己的汇编语言,并且互相完全不兼容。

    汇编,虽然很强大,但是很难去编写大型应用,并且很难用一种逻辑方式去读或者翻译。 C 是一种编译语言,它可以创建快速且高效的可执行文件。 C 语言也被称作“你所看到的就是你能得到的(what you see is all you get)”语言: 一个 C 语句最多对应几个汇编语句,其他的是由库函数提供。

    用 C 设计的操作系统类库也是用 C 编写的。 这些系统类库被用来创建更高级的类库,例如 OpenGL。 而应用开发者,利用这些高级的库区开发文字处理器,游戏,音频播放器等等。这种模式持续到至今。

    为什么是 C ,而不是其他高级语言?

    C 语言设计的主要目的是生成可移植代码,同时保持性能和最小化占用空间( CPU time, memory, disk I/O 等等)。这对非常关心性能的操作系统,嵌入式系统是非常有用的。由于 C 是 Unix 的最基本的语言,因此这就是它具有了灵活性和可移植性。它是一个稳定和成熟的语言,不太可能消失很长时间,并已移植到大多数平台。

    使用 C 另一个强大的理由是内存分配,这就不像其他语言,C 允许程序员直接操作内存。 C 语言中关键的结构,例如 结构体,指针,数组,这些被设计用来 以高效和机器无关的方式 来结构化和操作内存。而且,C 能够对数据结构的内存布局进行控制。而且动态内存分配也可以被程序员控制,但是这也意味着我们要手动去释放内存。 像 Java 和 Perl 这样的高级语言,程序员不用担心内存分配和指针问题,因为处理内存分配是一个非常容易出错的过程。 然而,当处理一些控制设备低级代码,C 可以提供统一且干净的接口。而这些能力在高级语言中是不存在的。

    尽管 Perl, PHH 以及 Ruby 可能会很强大,并且提供了一些 C 没有实现的特性,但是他们也是用 C 实现的。而且大多数这样的语言最初依赖于用C(或另一种高性能编程语言)编写,并且将要求它们的实现在被使用之前被移植到新平台。

    当然,最后你选择哪个语言取决于技术和业务需要。

    参考链接

    操作系统介绍
    https://en.wikipedia.org/wiki/Operating_system
    Unix系统介绍
    https://en.wikipedia.org/wiki/Unix

    相关文章

      网友评论

          本文标题:【译】为何学习C语言

          本文链接:https://www.haomeiwen.com/subject/dmwbwttx.html