C 语言标准简介

C 语言标准发布版本的演进过程是一段充满创新与演进的历程,以下是详细的演进过程:
一、诞生与早期发展
- 1969 年至 1973 年:C 语言在美国电话电报公司(AT&T)贝尔实验室开始研发。C 语言的诞生与 UNIX 操作系统的开发密不可分,原先的 UNIX 操作系统都是用汇编语言写的,1973 年 UNIX 操作系统的核心用 C 语言改写,从此以后,C 语言成为编写操作系统的主要语言。
- 1972 年:C 语言最重要的研发时期,根据 C 语言的发明者丹尼斯·里奇(Dennis Ritchie)所说,这是 C 语言发展的关键一年。
- 1978 年:美国电话电报公司(AT&T)贝尔实验室正式发布 C 语言。同年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)合作推出了《The C Programming Language》的第一版,该书成为 C 语言方面最权威的教材之一,人们称这个版本的 C 语言为“K&R C”。
- 期间 C 语言一直不断的发生细微的变化,各编译器厂商也有自己的扩展,这个过程一直持续到 20 世纪 80 年代末。
二、标准化阶段
- 1983 年:美国国家标准局(American National Standards Institute,简称 ANSI)成立了一个委员会,负责起草关于 C 语言的标准草案。
- 1989 年:C 语言标准被 ANSI 正式通过,成为美国国家标准,被称为 ANSI C,有时也被称为 C89 或 C90。
- 1990 年:在 ISO/IEC JTC1/SC22/WG14(ISO/IEC 联合技术第 I 委员会第 22 分委员会第 14 工作组)的努力下,ISO 批准了 ANSI C 成为国际标准,于是 ISO C(又称为 C90)诞生了。除了标准文档在印刷编排上的某些细节不同外,ISO C(C90)和 ANSI C(C89)在技术上完全一样。
- 1995 年:C 程序设计语言工作组对 C 语言进行了一些修改,这是对 C89 的一个修订和扩充,称为“C89 with Amendment 1”或 C95,成为后来的 1999 年发布的 ISO/IEC 9899:1999 标准,通常被称为 C99。C99 引入了许多新的特性和改进,如复杂数类型、以及对 C 语言标准库的扩展等。
三、现代化阶段
- 2011 年:国际标准化组织(ISO)和国际电工委员会(IEC)采纳了新的 C 语言标准,名叫 ISO/IEC 9899:2011,简称 C11 标准。C11 增加了对多线程的支持(通过 _Atomic 和 _Thread_local 关键字)、字节对齐说明符、泛型机制(generic selection)、静态断言、对 Unicode 字符的支持等,并改进了对编译器诊断信息的支持。
- 2018 年:发布了 C17 标准,主要是对 C11 标准的修订和更新,旨在进一步改进语言的特性和可用性。然而,与 C11 相比,C17 并没有引入新的语言特性或库功能,而是主要对 C11 标准中的一些小问题进行了修正和澄清。
- C2X:一个正在进行中的标准化过程,旨在对 C 语言进行进一步的改进和更新。虽然 C2X 还在开发中,但已经计划引入一些新的特性,如改进的泛型编程支持、扩展的标准库功能等。然而,由于 C2X 尚未正式发布,因此其具体特性和发布时间仍待确定。
综上所述,C 语言的标准版本经历了从 K&R C 到 C2X(计划中)的多个阶段,每个版本都在前一个版本的基础上进行了扩展和改进。这些变化旨在提高 C 语言的表达能力、程序员的开发效率和程序的可靠性。