C语言的历史和版本
C语言的历史
1972年,贝尔实验室的 Dennis Ritchie 在开发 UNIX 操作系统时设计了 C 语言。C 语言是在 B 语言的基础上设计的。
C语言的版本
K&R C
K&R C
也叫经典 C
, 以《The C Programming Language》【Brain Kernighan, Dennis Ritchie】(1987) (第1版) 作为 C 的标准, 取两个作者的姓的第一个字母称为 K&R 标准. 书的附录中定义了 C 语言, 未定义 C 库, 以 UNIX 实现提供的库作为标准库.
C89
C89 即 ANSI C, 由 ANSI (美国国家标准局, American National Standards Institute) 制定并批准, 于 1989 年正式公布.
后来 ANSI 把这个标准提交到 ISO (国际化标准组织, International Organization for Standardization), 1990 年被 ISO 采纳为国际标准, 称为 ISO C. 又因为这个版本是 1990 年发布的, 因此也被称为 C90.
ANSI C (C89) 与 ISO C (C90) 内容基本相同, 主要是格式组织不一样.
ANSI C
, ISO C
, C89
, C90
, ANSI/ISO C
, C89/90
这些称谓都是一样的, 都指的是同一个标准.
这个标准定义了 C 语言和 C 标准库.
目前常用的编译器都支持 ANSI C 的内容.
C99
1994 年 C 程序设计语言工作组对 C 语言进行了一些修改, 增加了新的关键字, 编写了新的库, 取消了原有的限制, 并于 1999 年形成新的标准 —— ISO/IEC 9899:1999
标准, 通常被称为C99
.
GCC 支持 C99, 微软的编译器只支持部分 C99 的特性.
ANSI C 规定, 局部变量要在块的开头定义, 而 C99 取消了这个限制, 变量可以在使用该变量之前的任意位置定义.
C11
C11 标准由国际标准化组织 (ISO) 和国际电工委员会 (IEC) 旗下的 C 语言标准委员会于 2011 年底正式发布.
支持 C11 标准的编译器有 GCC, LLVM/Clang, Intel C++ Compile 等.
微软的编译器不支持 C11.
C11 标准主要增加了以下内容:
-
增加了安全函数, 例如 gets_s()、fopen_s() 等;
-
增加了头文件以支持多线程;
-
增加了头文件以支持 Unicode 字符集;
-
以及其它一些细节.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术