单片机C语言 - 基于结构体的面向对象编程技巧

一、面向对象

面向对象是软件开发方法,是相对于面向过程来讲的。通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式

单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。

二、知识说明

1、结构体

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。

常用的定义方法:

typedef struct

{

变量;

指针;

函数指针;

} 结构体名称_t;

2、指针

指针是地址,指向内存中的变量。

常用的定义方法:数据类型 * 指针名;

3、函数指针

函数指针是指向函数的指针变量。

常用的定义方法:返回值类型 ( * 指针变量名) ([形参列表]);

三、编程说明

1、主函数如下:

系统初始化后,进入主循环,通过结构体调用system文件的函数。

2、结构体类型定义

定义1个变量与2个函数指针。

串口类型定义方法,通过结构体,将串口进行封装。

3、结构体变量定义

定义结构体变量,并进行初始化。 对于函数指针,在c文件中定义函数,再将函数名赋值给函数指针,这样,就可以通过结构体的函数指针调用c文件中的函数。

4、运行函数

由于使用结构体的函数指针调用函数,函数可以声明为static类型,安全性更好。

四、小结

单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。

面向对象编程的知识点很多,本文只是简要的介绍了下,仅仅起到抛砖引玉的作用,日后设计过程中,需要不断的总结经验,沟通交流,以达到真正的理解,灵活运用。

c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧相关推荐

  1. c++ 结构体初始化_【干货】c语言基础语法——结构体

    1.关于C语言结构体的引入 学习环境搭建1_Linux C语言_嵌入式开发工程师-创客学院​www.makeru.com.cn 在实际问题中有时候我们需要几种数据类型一起来修饰某个变量. 例如一个学生 ...

  2. go结构体初始化_浅谈golang结构体偷懒初始化

    运行一段程序,警告: service/mysqlconfig.go:63::error: golang.guazi-corp.com/tools/ksql-runner/model.CreatingM ...

  3. 共用体变量不能在定义时初始化_【C语言资料更新】共用体联合体

    文/Edward 共用体又称为联合体,它是C语言中的一种特殊的数据类型.它允许用户在相同的内存位置存储不同的数据类型.用户可以定义一个带有多成员的共用体,但是任何时候这些成员都共享同一块内存.举个例子 ...

  4. c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)

    链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A  )是构成C语言程序的基本单位. ...

  5. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  6. 青花瓷音乐的单片机c语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

  7. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

  8. 简单谱子C语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

  9. C语言 基于结构体的程序设计(PTA)

    一.实验目的 1.掌握C语言中结构体类型的定义和结构体变量的定义和引用. 2.掌握用结构指针传递结构数据的方法. 二.实验内容 1. 计算职工工资 给定N个职员的信息,包括姓名.基本工资.浮动工资和支 ...

最新文章

  1. Emptiness 空值语义
  2. Linux Container 研究报告
  3. 为什么任何对象都可以实现锁
  4. 使用root用户安装Hybris遇到的错误
  5. c语言统计数据,数据统计
  6. python储存_python数据储存
  7. 蓝桥杯小朋友排队java_[蓝桥杯][历届试题]小朋友排队 (C++代码)
  8. Bower和npm有什么区别?
  9. Errors running builder 'DeploymentBuilder'
  10. Linux中weblogic的设置
  11. 研究生毕业设计的课题的基本步骤以及每个步骤的关键点?
  12. 全网最全数据分析师面试干货-业务逻辑篇
  13. 【玩转微信公众平台之中的一个】序章(纯粹扯淡)
  14. opencv 物体尺寸测量
  15. 【opencv-python】 cv2.subtract(...)图片减法
  16. 关于uniapp cheneckbox复选框不显示对号的问题
  17. Python分别用单线程,多线程,异步协程爬取一部小说,最快仅需要5s
  18. springboot修改pdf内容
  19. 虚拟主机和物理服务器有什么不同
  20. 服务器一般装在哪个位置,立尔讯塔式服务器一般使用在哪些地方?

热门文章

  1. mongodb数组更新操作符$addToSet
  2. android开发,加法,上课写的demo
  3. 给定一个整数数组,判断是否存在重复元素。
  4. cvtcolor python opencv_13行代码实现:Python实时视频采集(附源码)
  5. python中嵌套函数的应用实例-实例详解python函数的对象、函数嵌套、名称空间和作用域...
  6. iVMS-4200 Vs区别_杏林早报 | 西芹、水芹、旱芹...功效有区别,吃对才真降血压!...
  7. java调用日期控件_JAVA基础应用:日期时间选择控件(代码)
  8. jenkins发送allure测试报告附件
  9. linux 运行jar main,Maven打包生成jar包并在linux下启动main方法
  10. 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......