用户工具

站点工具


侧边栏

program:c

C语言

C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。

C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言。当前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。

二十世纪八十年代,为了避免各开发厂商用的C语言的语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持符合ANSI C的语法。

设计

C语言设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器代码以及不需要任何运行环境支持便能运行的编程语言。C语言也很适合搭配汇编语言来使用。尽管C语言提供许多低级处理的功能,但仍保持良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(微控制器或称MCU)以及超级电脑等作业平台。

特性

  • C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
  • C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
  • 不同的变量类型可以用结构体(struct)组合在一起。
  • 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
  • 部分的变量类型可以转换,例如整型和字符型变量。
  • 透过指针(pointer),C语言可以容易的对存储器进行低级控制。
  • 编译预处理(preprocessor)让C语言的编译更具有弹性。

白皮书:C程序设计语言

《C程序设计语言》(The C Programming Language),又译为C语言程序设计,是介绍C语言的计算机科学著作,由计算机科学家布莱恩·柯林汉(Brian W.Kernighan)和C语言之父丹尼斯·里奇(Dennis M.Ritchie)合著,是第一部介绍C语言编程方法的书籍。它因作者名字的缩写被简称为K&R;或是因封面颜色,被称为白皮书。

它在C语言的发展和普及过程中起到了非常重要的作用,被视为是C语言的业界标准规范,而且至今仍然广泛使用。它被公认为计算机技术著作的典范,以清晰简洁的文字讲述而著称。书中用“hello world”为实例开始讲解程序设计,成为程序设计语言图书的传统。

该书第1版出版于1978年,第2版(也是最新版本)出版于1988年,被译为世界上包括中文在内的20多种文字。在中国出版的英文版在豆瓣评分获得9.6的高分评价。

The C Programming Language是最著名的C语言书籍。但是,它不是写给初学者看的,更偏重C语言的编程技巧和算法思维。初学者入门书单请查阅C语言入门经典书籍

中文版

The C Programming Language 2nd Edition的中文版本:

  • C程序设计语言(第2版·新版)
  • 出版社: 机械工业出版社
  • 译者: 徐宝文 / 李志译 / 尤晋元审校
  • 出版年: 2004-1
  • ISBN: 9787111128069

作者简介

Brian W. Kernighan: 贝尔实验室计算科学研究中心高级研究人员,著名的计算机科学家。他参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的著作,如《The Elements of Programming Style》、《The Practice of Programming》、《The UNIX Programming Environment》、《The AWK Language》、《Software Tools》等。

Dennis M. Ritchie:1967年加入贝尔实验室。他和Ken L. Thompson两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们两人还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. Ritchie于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项.。

维基百科:C语言维基百科:C++

program/c.txt · 最后更改: 2019/12/03 16:41 由 125.71.179.119