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

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

  • 相关阅读:
    git常见问题
    SpringBoot-拦截器
    .NET 6.0 Web API Hangfire
    基变换与矩阵对角化
    仅1.6万元,100%源码交付企业级开源 AIoT 物联网平台,可视化Web组态大屏,二次开发项目...
    【Pytorch】多维矩阵的加法
    “亚马逊依赖”之下,傲基科技的品牌势能如何提升?
    设计模式之装饰着模式(七)
    java存储数据到本地txt文件中-以及-读取txt文件的内容
    SSM整合-异常处理器及项目异常处理方案
  • 原文地址:https://blog.csdn.net/han1202012/article/details/132335990