1.1.2 C语言的标准化

C语言发展到现在已经经历了三个标准,分别为K&R C、C89或ANSI C和C99。

1.K&R C

最初,C语言没有统一的官方标准可供遵循。1978年,Brian Kernighan和Dennis Ritchie完成了影响深远的《The C Programming Language》第一版的写作,该书的附录中提供了C语言参考手册。在以后的几年里,该书一直被广泛作为C语言的实现规范,成为非官方的C语言标准。这本书提出的C语言标准通常被简称为“K&R C”,其中,“K”和“R”是两个作者名字的首字母。

2.C89或ANSI C

C语言在随后短短几年的应用中得到了很快的发展。实际上使用的C语言早已超越了K&R C描述的范围,同时,K&R C在语言的许多细节上也没有达到足够精确的要求,这使标准化C语言成为一个迫切的要求。于是在1983年夏天,美国标准化组织(ANSI)成立了一个C语言工作小组,开始了C语言的标准化工作。小组主要负责确认C语言的常用特性,但也对语言本身做了一些修改,并引入了一些新的特性。

1989年12月,ANSI发布了ANSI 89报告,由其规定的C语言标准被称为ANSI C,也称为“C89”。随即,该标准被国际标准化组织(ISO)有所修改后接纳为ISO标准,即ISO/IEC9899-1990。由于ISO是一个更为权威的国际性组织,于是在1990年,ANSI重新采纳了ISO/IEC9899-1990作为新的ANSI C。因此,ANSI C实际上就是ISO C。

3.C99

在ANSI标准化后,C语言的标准在相当长的一段时间内都保持不变,直到1999年,ISO的第14小组(WG 14)在C89的基础上进行了修改,并加入了一些新的特性,发布了ISO9899:1999。这个版本就是通常提及的C99。但是各个公司对C99的支持所表现出来的兴趣不同,一些公司最新的编译器并没有支持一些新的特性。

提示:若无特殊说明,本书的讲解都遵循C99的标准。