C指针原理揭秘:基于底层实现机制
上QQ阅读APP看书,第一时间看更新

1.1 C语言的起源与发展

C语言的发展历史颇为有趣,它的原型是ALGOL 60。1963年,剑桥大学将ALGOL 60发展成为CPL(Combined Programming Language);1967年,剑桥大学的Matin Richards对CPL进行了简化,于是产生了BCPL;1970年,美国贝尔实验室的Ken Thompson对BCPL进行了修改,改名为B语言,同时用B语言编写了第一个UNIX操作系统;1973年,美国贝尔实验室的丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,他选取BCPL的第二个字母作为这种语言的名字,即C语言,丹尼斯·里奇因此被世人称为“C语言之父”。

为了推广UNIX操作系统,1977年,丹尼斯·里奇发表了《可移植的C语言编译程序》,1978年,布莱恩·克尼汉(Brian W.Kernighian)和丹尼斯·里奇出版了名著《The C Programming Language》,使C语言迅速成为世界上流行最广的高级程序设计语言,K&R C也因此确定了其事实性标准的历史地位。

随着微型计算机的日益普及,不同种C语言之间出现了不一致的问题,这一点为C语言的广泛应用带来了不便。1989年,美国国家标准局(ANSI)颁布了第一个官方的C语言标准(X3.159-1989),简称ANSI C或C89;1990年,C89被国际标准化组织(ISO)采用为国际标准(ISO/IEC9899:1990),简称为C90,这是目前广泛使用并完全支持的标准。

1999年,国际标准组织为C语言发布了新的标准ISO/IEC 9899:1999,修正了C89标准中的一些细节,并增加了更多更广的国际字符集支持,这个标准通常被称为C99,ANSI于2000年3月采用C99。

2011年12月8日,ISO正式发布了C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011,新的标准提高了对C++(1983年由贝尔实验室的Bjarne Stroustrup推出,C++进一步扩充和完善了C语言,成为面向对象的程序设计语言)的兼容性,并增加了很多新的特性。