1. C语言发展史:从实验室工具到编程基石
1972年,贝尔实验室的Dennis Ritchie在开发UNIX操作系统时创造了C语言。这个看似偶然的诞生,却彻底改变了计算机编程的格局。当时他们需要一种能够替代汇编语言、同时保持高效性的系统编程语言。B语言(由Ken Thompson开发)是C的前身,但存在数据类型单一等局限性。Ritchie通过引入类型系统、结构体等特性,创造出了这个影响后世半个世纪的编程语言。
早期的C语言甚至没有正式的标准文档,仅通过《The C Programming Language》(1978年出版,俗称K&R)这本书传播。书中的"hello world"示例成为无数程序员的启蒙代码。有趣的是,这本书附录A描述的"C Reference Manual"实际上成为了事实上的标准,后来被称为"K&R C"。
注意:K&R C与现代C标准存在显著差异,例如函数定义写作
int main() {而非现代标准的int main(void) {,且缺乏函数原型声明等特性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 标准化进程:从ANSI C到ISO C
2.1 C89/ANSI C(1989年)
随着C语言的流行,各种编译器实现出现了差异。美国国家标准协会(ANSI)于1983年成立了X3J11委员会制定标准,最终在1989年批准为ANSI X3.159-1989,俗称ANSI C或C89。这是C语言的第一个官方标准,它确立了:
- 标准库的基本组成(stdio.h、stdlib.h等)
- 预处理器的明确定义
- 函数原型声明语法
- void指针类型
- const和volatile限定符
2.2 C90(ISO标准)
1990年,国际标准化组织(ISO)采纳了ANSI C标准,仅做了少量编辑性修改,发布为ISO/IEC 9899:1990,称为C90。这两个标准实质内容相同,因此通常统称为C89/C90。
2.3 C99标准(1999年)
经过十年实践,ISO在1999年发布了重大更新的C99标准(ISO/IEC 9899:1999),主要改进包括:
c复制// 新特性示例:
int arr[10] = { [3] = 100 }; // 指定初始化器
for(int i=0; i<10; i++) {...} //
