C语言之标准(K&RC 、c89、c99、c11)

C 语言标准

C语言作为一种常用的计算机开发语言,被用于各种领域,尤其是单片机与嵌入式的开发,在现阶段更有着无可替代的作用,我也经常会使用C语言进行各种开发,使用过程中我们经常会听说 GUN C 、ANSI C、标准C这几个术语,在了解这几个术语对应的C标准之前,我们需要先了解三个组织,分别是自由软件基金会,美国国家标准学会以及国际标准化组织。下面对其三个组织进行简单说明:

自由软件基金会:是美国的一个民间非营利组织,致力于推进自由软件,其中linux与gnu就是由这个组织在维护。
美国国家标准学会:听名字就知道这是美国用于制定自己国家标准各类标准的组织(政府组织)
国际标准化组织:作用同美国国家标准协会相似,只是这个组织的目标更远大一些,致力于制定国际标准。
其中GNU C 是软件自由基金会制定的标准,ANSI C 是由美国国家标准学会制定的标准,而ISO C则是由国际标准化组织制定的标准,当前是一个国际化的时代,都在追求标准,那么这个标准化肯定不能是某一个国家的标准,那么这个标准肯定要有国际标准化组织来制定,所以我们常说的标准C其实就是ISO C,下面统称为标准C

标题K&R C

C 语言最初由 Dennis Rithie 于 1969 年到 1973 年在 AT&T 贝尔实验室开发出来的,主要用于重新实现 Unix 操作系统。此时 C 语言叫做 K&R C(K 是 Kernighan 的首字母,R 是 Rithie 的首字母)。
即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行K&R C的标准。

ANSI C和ISO C

C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。
C 语言被各大公司所使用,因此到1989 年,美国国家标准协会(ANSI)对此进行了标准化;

C89和C90

1983年,美国国家标准协会组成了一个委员会,X3J11,为了创立 C 的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 “Programming Language C”正式生效。这个版本的语言经常被称作”ANSI C”,或有时称为”C89”(为了区别C99)。 在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC 9899:1990。这个版本有时候称为C90或者ISO C。因此,C89和C90通常指同一种语言。
ISO/IEC 9899:1990 中的 9899 是 C 语言在 ISO 标准中的代号,像 C++ 在 ISO 标准中的代号是 14882;冒号后面的 1990 表示当前修订的好的版本是在 1990 年发布的。

C99

1999年,正式发布了 ISO/IEC 9899:1999,简称 C99。2000年3月,ANSI 采纳了 ISO/IEC 9899:1999 标准。
C99 标准引入了许多特性,包括:内联函数、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对 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 标准引入了:字节对齐说明符、泛型机制、对多线程的支持、静态断言、原子操作以及对 Unicode 的支持。

C标准文档(内含C89/C90,C99,C11标准文档)
链接:https://pan.baidu.com/s/1mwEaXsy0Apf9npDcM3bL-Q
提取码:vcbf

参考资料
C语言中文网:http://c.biancheng.net/view/143.html
维基百科:https://en.wikipedia.org/wiki/C_(programming_language)
C语言标准委员会的最新动态:http://www.open-std.org/jtc1/sc22/wg14/)

你可能感兴趣的:(C语言,c语言,编程语言)