C语言正式标准化至今,主要经历了几个关键的版本。C语言标准由ISO(国际标准化组织)发布,通常被称作 ISO/IEC 9899 系列。
下面是几个主要标准及其核心特点的概览:
| 标准 (非正式名称) |
发布时间 |
主要特性与变化 |
| C89 / C90 |
1989 / 1990 |
第一个官方标准。由ANSI在1989年发布,随后被ISO采纳。它奠定了C语言的基础,包括函数原型、标准库(如 stdio.h)等。 |
| C99 |
1999 |
一次重大更新。引入了许多现代特性,例如://单行注释、long long int类型、_Bool布尔类型、可变长数组(VLA)、restrict指针和 inline内联函数。 |
| C11 |
2011 |
关注并发与安全。正式引入了对多线程的支持(<threads.h>)、原子操作(_Atomic)、_Generic泛型选择和 _Static_assert静态断言。 |
| C17 / C18 |
2018 |
一个“补丁”版本。主要是对C11标准进行缺陷修复和澄清,没有引入任何重大的新语言特性。 |
| C23 |
2023/2024 |
最新的标准。引入了 nullptr、constexpr、二进制字面量(0b1010)、typeof、#embed等新特性,使语言更现代化。 |
名称“C18”和“C17”有时混用,本质上指代同一个标准。
一个重要的背景知识是,C89 和 C90 通常指同一个标准,因为ANSI在1989年批准,ISO在1990年采纳,两者在技术上没有差异。
目前,大多数C语言教程和现有代码库仍主要基于C99或C11标准。而现代编译器(如GCC、Clang)对新标准(如C23)的支持也日趋完善。在编写代码时,根据项目需求,可以通过编译器的 -std=c99 或 -std=c11 等选项来指定使用哪个标准。