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)在技术上完全一样。
    • C89 的主要改动:
      • 定义了 C 标准库;
      • 新的预处理命令和特性;
      • 函数原型(prototype);
      • 新关键字:const、volatile、signed;
      • 宽字符、宽字符串和多字节字符;
      • 转化规则、声明(declaration)、类型检查的改变。
  • 1995年:C程序设计语言工作组对C语言进行了一些修改,这是对 C89 的一个修订和扩充,称为“C89 with Amendment 1”或 C95,成为后来的1999年发布的ISO/IEC 9899:1999标准,通常被称为C99。C99引入了许多新的特性和改进,如复杂数类型、以及对C语言标准库的扩展等。
    • C95 的主要改动:
      • 3个新标准头文件:iso646.h、wctype.h、wchar.h
      • 一些新的标记(token)和宏(macro);
      • 一些新的 printf/scanf 系列函数的格式符;
      • 增加了大量的宽字符和多字节字符函数、常数和类型。
    • C99 的主要改动:
      • 对内联函数的支持
      • 复数(complex);
      • 整数(integer)类型扩展;
      • 可变长度数组(VLA);
      • Boolean 类型;
      • 非英语字符集的更好支持;
      • 浮点类型的更好支持;
      • 提供全部类型的数学函数;
      • 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语言的表达能力、程序员的开发效率和程序的可靠性。

备注:

因个人习惯和能力所限,该文档内容若存在表述不合理或错误之处,请大家留言多多指正

版权声明:本文来自网络内容进行整理汇总,本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明