C89、C90、C99 和 C11 是 C 语言的不同标准版本,它们代表了 C 语言在不同时间点的语言规范和标准。以下是它们的详细含义:
1. C89 (ANSI C):
- 全称:ANSI X3.159-1989
- 发布年份:1989年
- 背景:这是美国国家标准协会 (ANSI) 制定的 C 语言标准,也被称为“ANSI C”。它是基于早期的 K&R C(Kernighan and Ritchie C)语言的一个标准化版本。
- 特性:定义了 C 语言的核心语法、数据类型和标准库函数等基本要素。
2. C90 (ISO C):
- 全称:ISO/IEC 9899:1990
- 发布年份:1990年
- 背景:这是国际标准化组织 (ISO) 发布的 C 语言标准,基本上是对 C89 标准的复制,除了加入了一些额外的细节。
- 特性:与 C89 标准几乎完全相同,唯一的区别是 C90 标准对 C89 标准做了一些小的改进和澄清。
3. C99:
- 全称:ISO/IEC 9899:1999
- 发布年份:1999年
- 背景:这是 C 语言的第三个标准版本,引入了许多新的特性和改进。
- 特性:包括对内联函数的支持、可变长度数组、复杂数类型、以及对 C 语言标准库的扩展等。
4. C11:
- 全称:ISO/IEC 9899:2011
- 发布年份:2011年
- 背景:这是 C 语言的第四个标准版本,进一步改进了语言的功能和标准库。
- 特性:包括对多线程支持(通过
_Atomic
和_Thread_local
关键字)、对Unicode字符的支持、改进了对编译器诊断信息的支持等。
5. C18:
- 全称:ISO/IEC 9899:2018
- 发布年份:2018年
- 背景:这是对 C11 标准的修订,主要集中在修正错误和澄清规范上,并没有引入重大新特性。
- 特性:C18 主要对 C11 标准中的一些小问题进行了修正,并没有增加新的语言特性或库功能。
6. C2X:
- 全称:ISO/IEC 9899:202x(计划中的名称)
- 背景:C2X 是一个正在进行中的标准化过程,旨在对 C 语言进行进一步的改进和更新,计划成为 C11 的下一版本。
- 特性:虽然 C2X 还在开发中,但已经计划引入一些新的特性,例如改进的泛型编程支持、扩展的标准库功能等。
总的来说,C 语言的标准化进程旨在不断改进和扩展语言的功能,同时保持向后兼容性。各个版本之间的变化和更新是为了提高语言的表达能力、程序员的开发效率和程序的可靠性。