嵌入式C语言面向对象编程 --- 封装

news2025/7/13 21:45:10

大部分使用 C 语言进行开发的工程师,在接触更高级的编程语言之前,都认为 C 语言是面向过程的。事实也是如此,对于一些小规模的单片机应用程序,一般都是使用“面向过程”的思维进行单片机C语言编程开发。

但是,如果是需要用C语言开发一些规模比较大的软件的时候,比如操作系统内核,文件系统底层,数据库底层,等等,这个时候,就需要用面向对象的思想去考虑和设计整个软件框架了。

嵌入式Linux的内核,虽然是使用 C 语言编写的,但里面的设计大部分都使用了面向对象的编程思想。

 图片来源公众号:码农翻身

很多单片机工程师或者嵌入式Linux驱动初学者,有时候会觉得驱动入门特别困难,很大一部分原因是,他们会用“过程式思维”去尝试学习驱动框架和内核框架,而非从“整体对象”的思维方向出发,这样容易导致水土不服。

任何编程语言只是一种工具,而编程思想是指导我们用好这个工具的关键。C 语言只是工具,而面向对象是一种编程思想,用来指导我们如何用从另一种思维模式去使用 C 语言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pycharm 中sqlite升级方法

sqlite 3.21升级到3.40 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> help Type help()…

小哥用Python兼职月入过万,用Python做项目有多赚钱?

问:请问用Python可以接哪些兼职的活赚钱? 1 兼职费用足够学费生活费 恰巧上学期间接过一些外包,恩,足够我和我媳妇的学费以及生活费,以及xx各种费用。 主要干过以下几种: 游戏外挂:主要开发…

Jetpack Compose中的导航路由

Jetpack Compose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,使用需要单独添加依赖: implementation "androidx.navigation:navigation-compose:$nav_version" Jetpack库中的Navigation使用起来还是比较麻…

毕业时就已26,工作4年就已大龄,码农出路在哪?

边工作边迷茫这可能是我们大多数职场人的常态。一边觉得这份工作不适合自己,另一边又不知道能去做什么。喜欢的工作,却又不知道如何提升。长此以往,内心难免产生焦躁,尤其随着年龄的增长,内心更是希望能够在事业上有所…

MySQL数据库的安装、创建库、创建表、创建测试数据及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库,并在其中创建新的数据表,填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾;若多行语句无;,则被默认为一条语句未输入完…

设计好接口的36个锦囊

前言 大家好,我是捡田螺的小男孩。作为后端开发,不管是什么语言,Java、Go还是C,其背后的后端思想都是类似的。后面打算出一个后端思想的技术专栏,主要包括后端的一些设计、或者后端规范相关的,希望对大家日…

redis安装 3台机器 6节点

一: redis官网地址: 6.2.6版本 1 | Index of /releases/http://download.redis.io/releases/ 二: 编辑配置文件 1: 注释本地IP地址: 1: bind: 本地IP 2: protected-mode no: #关闭保护模式 3&#xff1…

KG-构建:知识图谱基础代码构建(医疗向)

项目来源是GitHub上面刘老师做的一个基于知识医疗图谱的问答机器人,本文主要关注点放在建立知识图谱这一侧。这个项目并且将数据集也开源了放在dict和data文件夹下,让我觉得真的很难得,得给老师一个star! https://github.com/liu…

智能制造数字化转型难点有哪些?

① 企业高层没有意识到数字化转型的必要性、紧迫性和复杂性,观念还停留在部署常用的IT系统。实际上,数字化转型远远不是IT部门能够实现的,必须由企业的决策层引领,自顶向下推进。 ② 企业已经应用了诸多信息系统,但是…

《MySQL高级篇》九、数据库的设计规范

文章目录1. 为什么需要数据库设计2. 范 式2.1 范式简介2.2 范式都包括哪些2.3 键和相关属性的概念2.4 第一范式(1st NF)2.5 第二范式(2nd NF)2.6 第三范式(3rd NF)2.7 小结3. 反范式化3.1 概述3.2 应用举例3.3 反范式的新问题3.4 反范式的适用场景4. BCNF(巴斯范式)5. 第四范式…

SOLIDWORKS Electrical 2023新功能揭秘!提高电气工程师设计效率 与机械工程师协同设计

SOLIDWORKS 2023新版本已经与大家见面,今天众联亿诚与大家分享SOLIDWORKS Electrical 2023新功能。 电气工程师在完成电气原理图设计的同时,还需要频繁地修改、导出各报表,使得大量时间浪费在重复性的手动工作上。即便如此,也无法…

【Python】Numpy中的Gumbel分布和Logistic分布

文章目录极值分GumbelLogistic分布极值分 设X1,X2…,XnX_1,X_2\dots,X_nX1​,X2​…,Xn​为从总体FFF中抽出的独立同分布样本,且 Mmax⁡(X1,…,Xn),mmin⁡(X1,…,Xn)M\max(X_1,\dots,X_n), m\min(X_1,\dots,X_n) Mmax(X1​,…,Xn​),mmin(X1​,…,Xn​) 若存在Cn&…

【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。

简单介绍&#xff0c;Vue里面的v-model就是vue的双向绑定的指令&#xff0c;能将页面上控件输入的值同步更新到相关绑定的data属性&#xff0c;也会在更新data绑定属性时候&#xff0c;更新页面上输入控件的值。 v-model封装弹窗 父组件 <manage-dialog v-model"isVis…

8年测试工程师,3年功能,5年自动化,浅谈我的自动化测试进阶之路...

前言 大家好我是小濠&#xff0c;本命马玉濠&#xff0c;已近从事测试行业8年了&#xff0c;自己也从事过3年的手工测试&#xff0c;从事期间越来越觉得如果一直在手工测试的道路上前进&#xff0c;并不会有很大的发展&#xff0c;所以通过自己的努力&#xff0c;早几年已经成…

2022巨量引擎城市峰会:发布重磅白皮书 提升城市繁荣力

12月21日&#xff0c;由巨量引擎城市研究院发起的年度城市盛典——《数说美好城市2022巨量引擎城市主题峰会》在上海隆重启幕。作为巨量引擎旗下专业城市研究机构&#xff0c;巨量引擎城市研究院在峰会期间发布了两份重磅报告:《2022美好城市指数白皮书》以及《2022都市圈发展力…

【Numpy基础知识】通用函数ufunc基础知识

通用函数(ufunc)基础知识 来源&#xff1a;Numpy官网&#xff1a;<https://numpy.org/doc/stable/user/basics.html 文章目录通用函数(ufunc)基础知识导包【1】Ufunc方法【2】输出类型确定【3】广播【4】类型转换规则【5】使用内部缓冲器【6】错误处理【7】覆盖ufunc行为导包…

【布局 widget】OverflowBox 与 SizedOverflowBox

OverflowBox 对于 OverflowBox ,文档只有一句话&#xff1a;把不同的约束强加给 child&#xff0c;允许 child overflow 父容器。这句话说的太简略了&#xff0c;使用的时候还是一头雾水&#xff0c;代码逻辑是这样的: BoxConstraints _getInnerConstraints(BoxConstraints co…

文科专业女生转行程序员月入20k:女生不适合做程序员吗?

背景故事 我毕业于某不知名985的经济学院&#xff0c; 19年毕业就跨考了计算机&#xff0c; 第一年考的是北大。北大专业课自主命题&#xff0c;考试范围包括慕课上的四门课408四门内容&#xff0c; 我就去做了炮灰。 第二年因为疫情和一些别的事情&#xff0c; 9月份开始准备考…

用 Python 制作各种用途的二维码

当你提到二维码时&#xff0c;大多数人想到的是仓库管理或产品标签等 "工业 "应用&#xff0c;但这篇文章在很大程度上是关于二维码的个人和社会用途。 有趣的事实 二维&#xff08;QR&#xff09;码是在1994年发明的&#xff0c;最近几年由于新冠肺炎的出现&#…

一道非常棘手的 Java 面试题:i++ 是线程安全的吗?

i 是线程安全的吗&#xff1f; 相信很多中高级的 Java 面试者都遇到过这个问题&#xff0c;很多对这个不是很清楚的肯定是一脸蒙逼。内心肯定还在质疑&#xff0c;i 居然还有线程安全问题&#xff1f;只能说自己了解得不够多&#xff0c;自己的水平有限。 先来看下面的示例来…