C语言的历史

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chxii

小小打赏,大大鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值