C 语言是一种 通用的、过程式的编程语言,由 丹尼斯·里奇(Dennis Ritchie) 在 1972 年于贝尔实验室开发。它以 高效、灵活、贴近硬件 而著称,广泛应用于系统软件、嵌入式系统、驱动程序、游戏引擎、数据库系统等底层开发领域。
C语言的发展历史
1. 起源:B语言和BCPL语言
- C语言的前身是 B语言,由 肯·汤普逊(Ken Thompson) 在 1970 年开发,用于在 PDP-7 计算机上开发 Unix 操作系统。
- B语言又源于 BCPL语言(Basic Combined Programming Language),这是一种在 1960 年代末设计的系统编程语言。
2. C语言的诞生(1972年)
- 丹尼斯·里奇 在 B 语言的基础上开发了 C 语言,加入了类型系统、结构体、指针等特性。
- C语言最初用于重写 Unix 操作系统,使得 Unix 能够更容易地移植到不同的硬件平台上。
3. K&R C(1978年)
- 1978年,Brian Kernighan 和 Dennis Ritchie 合著出版了《The C Programming Language》一书,这本书成为 C 语言的标准参考书,书中描述的 C 语言版本被称为 K&R C。
- 这是 C 语言的非正式标准,也是 C 语言普及的起点。
4. ANSI C / C89(1989年)
- 为了统一 C 语言的标准,美国国家标准协会(ANSI) 在 1989 年制定了第一个官方标准,称为 ANSI C 或 C89。
- 这是第一个正式的 C 语言标准,也被 ISO 采纳为 ISO C90。
5. C99(1999年)
- 1999年,ISO 发布了新的 C 标准:C99。
- 新增了:
- 单行注释
//
- 变长数组(VLA)
- 内联函数
- 布尔类型
_Bool
- 支持混合声明和代码
- 更多数学函数和头文件
- 单行注释
6. C11(2011年)
- 2011年发布的 C11 是 C 语言的最新正式标准。
- 新增了:
- 多线程支持(
<threads.h>
) - 泛型选择
_Generic
- 对齐控制
- 匿名结构和联合
- 更安全的函数(如
gets_s
替代gets
)
- 多线程支持(
7. C17 / C18(2018年)
- 2018年发布的 C17(或 C18) 是对 C11 的小幅度修订,主要是修复错误和不一致之处,没有引入重大新特性。
8. C23是C语言标准的一次重大修订
新版本的gcc和clang实现了C23的大部分新语言功能,但是部分功能仍然缺失,例如:constexpr 存储类说明符,[[unsequenced]] 和 [[reproducible]] 属性等等。
- 替换宏为关键字:
thread_local
(原thread_local()
)、constexpr
(原constexpr
存储类说明符)、alignas
(原_Alignas
) - 新增关键字:
bool
(布尔类型)、nullptr_t
(空指针类型) - 支持类型推断:使用
auto
声明变量时自动推断类型 - 新增
[[nodiscard]]
属性强制处理函数返回值,避免内存泄漏;新增检查宏(如ckd_add()
、ckd_mul()
)确保位操作不会溢出。
C语言的重要性
- C语言是现代编程语言的基础,很多语言如 C++、Java、C#、Python、Go 等都受到 C 语言的影响。
- 它是学习 计算机底层原理 的最佳语言之一,有助于理解内存管理、指针、数据结构等核心概念。
- 操作系统、编译器、数据库等底层系统 几乎都使用 C 或 C++ 实现。
c语言开发工具
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux