深入 C 语言和程序运行原理
于航
PayPal 技术专家
21121 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
深入 C 语言和程序运行原理
15
15
1.0x
00:00/00:00
登录|注册

大咖助阵|LMOS:用面向对象的思想开发 C 语言程序

示例:内存管理中的数据结构继承锁功能
封装对象的意义在于继承
示例:锁的封装
把属性和方法组织在一起形成对象
封装、继承、多态
示例:猫和人的吃饭动作封装
面向对象是面向过程的衍生
应用编程领域中常用
示例:吃饭的不同实现
过程是对功能或动作的精确实现
命令式语言的实现手段
C语言模块文件作为对象类
Cosmos操作系统案例
操作系统、数据库等工程开发
C语言与工程实践结合
C语言实现面向对象的封装和继承
面向过程与面向对象的思考方式
C语言的广泛应用
继承
封装
面向对象
面向过程
高级语言中的低级语言,低级语言中的高级语言
适应底层开发
开发操作系统、数据库、编译器、解析器
完全操作计算机所有资源
写在最后
重点回顾
基于 C 语言的面向对象编程
面向过程和面向对象
C 语言能干什么?
LMOS 说 C 语言:用面向对象的思想开发 C 语言程序

该思维导图由 AI 生成,仅供参考

你好,我是 LMOS。
在“ LMOS 说 C 语言”的上篇里,我向你分享了 C 语言的起源,它与 UNIX 操作系统的联系,以及与 C 语言简单和困难相关的语言特性。今天我想和你聊聊,既然 C 语言是一把锋利但考验使用者技巧的瑞士军刀,我们可以拿它做什么,又怎么才能把它用好。

C 语言能干什么?

对于“C 语言能干什么”这个问题,我的回答是:C 语言能干一切其他语言能干的事。
C 语言自身的特性使得它能完全操作计算机所有的资源,因此它生来就是开发操作系统等底层核心软件的。不仅仅是开发操作系统,还有一些数据库和一些其他高级编程语言的编译器、解析器等。C 语言简单的语法,被 C++、Java、Go、JS 等语言效仿。其实从 C 语言的语言特性就可以看出来,它属于高级语言中的低级语言,又是低级语言中的高级语言,能适应一切底层开发。
然而,C 语言既然能做一切底层开发,就一定能做一切上层开发,只是对开发者的能力要求远高于 Java、Go 这些高级语言。其实,所有的高级语言都有共同的目标,就是降低开发者的学习使用成本和心智负担,从而降低软件的开发和维护成本。比如,Java 用虚拟机实现了一次编译处处运行,用垃圾内存回收机制解决了程序员使用内存的困难,不用时刻担心内存没有释放。这些归根结底是为了降低软件开发成本。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

C语言的面向对象编程思想是本文的重点。文章首先介绍了C语言的强大功能,可以高效实现操作系统、数据库等工程实践。然后对比了面向过程和面向对象的编程思想,指出C语言虽然是面向过程的,但也可以实现面向对象的编程方法。接着通过实例详细讲解了面向对象的封装和继承特性在C语言中的实现。作者以操作系统中的锁和内存管理数据结构为例,展示了如何用C语言实现封装和继承。文章最后强调了C语言的潜力,鼓励读者将其与工程实践相结合,尝试用C语言开发操作系统、数据库等工程。整体而言,本文深入浅出地介绍了C语言的面向对象编程思想,为读者提供了实用的技术指导和启发。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入 C 语言和程序运行原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • =
    读完这篇文章后,最好的描述就是“捅破窗户纸”。 这学期,因为学校课程的原因,看了许多内核代码,内核代码中基于C语言的封装、继承特别多,这种继承在数据结构上体现得非常明显,数据结构A会继承数据结构B,数据结构A又会被其他数据结构继承…… 虽然大一时学过C语言,但是面对内核代码中繁多的数据结构继承依然感觉不适应,经过一个学期对内核代码的阅读,对基于C语言的封装与继承算是习惯了,但也只是一种感性的认知,感觉和它隔了一层窗户纸,但自己始终捅不破这层窗户纸。今天看了这篇文章后,最大的感叹就是“原来是这样”,真有一种自己琢磨了许久终于对一件事物有了些浅薄的认识,一位前辈直接鞭辟入里,把最本质、最深入的内容直接扒开来展示给你的感觉。
    2022-01-04
    1
    8
  • 白花风信子
    老师好哇!读完后对C中简单实现面向对象的操作有了一些具体的了解,但是我还有几个问题希望老师能帮忙解答一下QAQ。 1. “你可能想问:难道我们要每种数据结构都写一套加锁、解锁的代码吗?当然不是。我们只需要在其他结构里包括这个 MLock 就行了,相当于继承 MLock 类。” 老师这段话的意思是在struct里面包含另外的struct就能实现继承的功能,但是在面向对象里面,这样的操作应该是has-a,而继承是is-a。请问has-a和is-a的实质是类似的吗?这种has-a和is-a的区分只是在设计思想上的区别嘛? 2. 关于封装和继承的访问权限,只是由编译器设置的访问权限嘛? 3. 关于多态的实现,应该就是虚函数表叭,但是C语言按上面的继承方式实现起来好像就是直接在struct里面添加新的函数了?
    2022-01-09
    2
    2
  • Y
    面向对象是一种编程思想,C需要也可以实现,就是麻烦一点。
    2022-02-04
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部