c语言电子书下载编程书籍《The C programming language(中文版)》免费下载?

分类于:
人工智能 设计
简介 资源最后更新于 2020-07-24 15:47:42 作者:Brian W. Kernighan出版社:Prentice Hall出版日期:1988-01ISBN:9780131103627文件格式:
pdf
标签: c Programming C语言 编程 计算机 经典 C 程序设计
简介· · · · · · Presents a complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C's rich set of operators, economy of expression, improved control flow, and data structures. This 2nd edition has been completely rewritten with additional example...
C语言最初由 Dennis Ritchie 于 1969 年到 1973 年在 AT&T 贝尔实验室里开发出来,主要用于重新实现 Unix 操作系统。此时,C语言又被称为 K&R C。其中,K 表示 Kernighan 的首字母,而 R 则是 Ritchie 的首字母。K&R C语言与后来标准化的C语言有很大差异,比如:
如果函数返回类型为 int,则 int 可省:
int my_function(){ }
也可以写成
my_function(){ }
编译器不会有任何警告,更不会报错。
还有现在看来比较奇葩的函数定义,像我们现在定义这么一个函数:
void my_function(int a, char*p) {}
如果是用 K&R C 语法定义的话要写成:
void my_function(a,p)int a; char*p; {}
K&R 的C语法中,定义一个函数时,其形参列表先列出形参的标识符,然后在函数声明的后面紧跟着对形参标识符的完整声明,最后是函数体。这在现行标准中已经被逐步废弃使用了。
另外,当时的第一本C语言专业书《The C Programming Language》也并非一个正式的编程语言规范,但被用了许多年。
C90 标准
由于C语言被各大公司所使用(包括当时处于鼎盛时期的 IBM PC),因此到了 1989 年,C语言由美国国家标准协会(ANSI)进行了标准化,此时C语言又被称为 ANSI C。而仅过一年,ANSI C 就被国际标准化组织 ISO 给采纳了。此时,C语言在 ISO 中有了一个官方名称——ISO/IEC 9899: 1990。其中:
9899 是C语言在 ISO 标准中的代号,像 C++ 在 ISO 标准中的代号是 14882;
而冒号后面的 1990 表示当前修订好的版本是在 1990 年发布的。
对 于ISO/IEC 9899: 1990 的俗称或简称,有些地方称为 C89,有些地方称为 C90,或者 C89/90。不管怎么称呼,它们都指代这个最初的C语言国际标准。这个版本的C语言标准作为 K&R C 的一个超集(即 K&R C 是此标准C的一个子集),把后来引入的许多非官方特性也一起整合了进去。其中包括了从 C++ 借鉴的函数原型(Function Prototypes),指向 void 的指针,对国际字符集以及本地语言环境的支持。在此标准中,尽管已经将函数定义的方式改为现在我们常用的那种方式,不过K&R的语法形式仍然兼容。
C99标准
在随后的几年里,C语言的标准化委员会又不断地对C语言进行改进,到了 1999 年,正式发布了 ISO/IEC 9899: 1999,简称为 C99 标准。C99 标准引入了许多特性,包括内联函数(inline functions)、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对IEEE754浮点数的改进、支持不定参数个数的宏定义,在数据类型上还增加了 long long int 以及复数类型。毫不夸张地说,即便到目前为止,很少有C语言编译器是完整支持 C99 的。像主流的 GCC 以及 Clang 编译器都能支持高达90%以上,而微软的 Visual Studio 2015 中的C编译器只能支持到 70% 左右。
C11标准
2007 年,C语言标准委员会又重新开始修订C语言,到了 2011 年正式发布了 ISO/IEC 9899: 2011,简称为 C11 标准。C11标准新引入的特征尽管没 C99 相对 C90 引入的那么多,但是这些也都十分有用,比如:字节对齐说明符、泛型机制(generic selection)、对多线程的支持、静态断言、原子操作以及对 Unicode 的支持。关于C语言历史与演化进程的详细介绍可参考维基百科:https://en.wikipedia.org/wiki/C_%28programming_language。笔者近两年也是在不断地了解C语言标准委员会的最新动态(可参见:http://www.open-std.org/jtc1/sc22/wg14/),其中看到有人提出想为C语言添加面向对象的特性,包括增加类、继承、多态等已被 C++ 语言所广泛使用的语法特性,但是最终被委员会驳回了。因为这些复杂的语法特性并不符合C语言的设计理念以及设计哲学,况且 C++ 已经有了这些特性,C语言无需再对它们进行支持。

我要回帖

更多关于 c语言电子书下载 的文章

 

随机推荐