c语言标准——ANSIC、C90、C99、C11
来源:面包芯语    时间:2023-04-06 12:32:00

‍‍‍关注+星标公众号,不错过精彩内容!

1、K&R C


(资料图片仅供参考)

1978年,Brian Kernighan和Dennis Ritchie出版了第一版《The C Programming Language book》,被称为“K&R”,多年来一直作为该语言的非正式规范。这个版本的C通常被描述为K&R C。K&RC和后面描述的C语言有些不同。

比如

1)对形参的详细描述在函数声明的后面,目前没什么人用了。

2)在早期版本的 C 中,没有返回类型的函数将int作为默认返回类型。即使在今天的编译器中,“int”如果没有在原型和定义中声明会出现编译警告。

2、ANSI C、C89、C90

美国国家标准协会(ANSI)组成了一个委员会在1989年完成,这个版本的C语言经常被称作ANSI C。因为这个标准是1989年完成,有时候也称作C89。

1990年,ANSI C被国际标准化组织ISO采纳了,成了国际化标准,ISO/IEC 9899: 1990。ISO标准有很多种,9899代表C语言,1990代表标准发布年限。此版本有时候也称作ISO C。实际上ANSI C、C89、C90、ISO C可以理解为一种标准。

3、C99

1990年之后的几年里,C语言的标准化委员会又不断地对C语言进行改进,1999 年,正式发布了 ISO/IEC 9899: 1999,简称为 C99 标准。C99 标准引入了许多特性,包括内联函数(inline function)、可变长度的数组对IEEE754浮点数的改进、支持不定参数个数的宏定义,在数据类型上还增加了 long long int 以及复数类型。

4、C11

2007年,C语言标准委员会又重新开始修订C语言,到了2011年正式发布了 ISO/IEC 9899:2011,简称为 C11 标准。C11标准新引入的特征,尽管没 C99 相对C90引入的那么多,但是这些也都十分有用,比如:字节对齐说明符、泛型机制、对多线程的支持、静态断言、原子操作以及对Unicode的支持。

5、总结

这些规范都写的很详细,很复杂。如果不是研究C语言编译器,没必要去深究各个版本的区别,作为C语言编程工程师大致了解一下即可。许多知名的编译器都没有完全实现这些标准,但这不妨碍我们使用C语言编程。

关键词:

上一篇:

下一篇:

X 关闭

X 关闭