一、C 语言发展
C 语言 被开发之前 并 没有经过 缜密 的 设计 , 而是在 使用过程中 逐渐完善的 ;
C 语言发展经过如下阶段 :
- 初始阶段 : 1972年至1978年 , C语言 初步形成 , 主要用于 UNIX 操作系统的开发 ;
- 发展阶段 : 1978年至1988年 , C语言成为主流的编程语言 , 加入了 stdio.h , stdio.h , stdlib.h , string.h 等标准库 , 功能得到了极大的增强 ;
- 成熟阶段 : 1988年至1998年 , C语言成熟,推出 C语言标准和规范 , 如 : ISO/IEC 9899 ;
- 现代阶段 : 1998年至今,C语言 推出 C99 , C11 , C17 等标准 , 以满足新的编程需求 ;
二、C 语言缺陷
C 语言有如下缺陷 :
- C 语言 没有经历过 缜密的 设计过程 , 都是根据需求逐渐完善的 , 出现了很多缺陷和漏洞 ;
- C 语言 在开发时 , 有很多 " 灰色地带 " , 稍不注意就会产生无法排查的问题 , 如 : 内存的管理 - 分配和释放内存 , 指针操作 - 野指针 , 类型转换时精度损失 , 并发死锁 等问题 ;
- C 语言 有很多 " 低级语言的特征 " , 如 : 可以直接访问内存 , 没有垃圾回收机制 , 需要手动管理内存 , 可以直接访问硬件 - 读写端口 / 控制中断 ;
- C 语言 直接 通过 " 指针 " 操作 " 内存 " , 造成了很多不可排查的错误 , 如 : 野指针 ;
尽管 C 语言有上述缺陷 , 但是 C 语言有一个优势 , 那就是 执行效率 非常高 ;
三、C 语言 面向对象 高级语言特性
1、C 语言衍生的高级语言
鉴于 上述 面向过程 的 C 语言 的 设计缺陷 ,
在 C 语言 的基础上 , 引入 面向对象 设计方法 , 同时加入 高级语言特性 , 开发出了 高级面向对象 语言 , 如 :
- Objective-C , 主要用于 Mac 软件和 iPhone / iPad 软件开发 ;
- C , 用途广泛 , Windows / Linux 都可以使用 C 语言 ;
2、C 语言与 C 语言关系
C 语言 与 C 语言 并 不是 竞争关系 ;
C 语言 是 以 C 语言为基础 的 加强版本编程语言 , 可以看作是更好的 C 语言 , 在 C 语言 中 , 可以使用 C 语言语法 , 对 C 语言完全兼容 ;
C 语言 包含 C 语言 , 在 C 代码中可以使用 C 语言的语法 , 但是在 C 语言中不能使用 C 的语法 ;
3、C 语言增加内容
C 语言 在 C 语言基础上 :
- 增加了 面向对象 支持 ;
- 进行了 类型加强 ;
- 进行了 函数加强 ;
- 增加了 异常处理机制 ;
- 增加了 STL 特性 ;
4、C 语言与 C 语言应用场景
C 语言 和 C 语言的应用场景 :
- C语言 应用场景 : 系统软件、操作系统、编译器等 底层系统级应用 ;
- C 语言 应用场景 : 大型应用程序、游戏 等更 高级的应用 ;
在不同的 需求场景 中 , 选择合适的编程语言 ;