【C++】C 语言与 C++ 语言的关系 ( C 语言发展 | C 语言缺陷 | C 语言 + 面向对象 + 高级语言特性 | C++ 语言增加内容 | C 语言与 C++ 语言应用场景 )





一、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++ 语言 应用场景 : 大型应用程序、游戏 等更 高级的应用 ;

在不同的 需求场景 中 , 选择合适的编程语言 ;

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/132335990