[牛人杂谈] 基于结构体的面向对象编程技巧

[复制链接]
1387|8
 楼主| saservice 发表于 2023-8-26 20:03 | 显示全部楼层 |阅读模式
一、面向对象
面向对象是软件开发方法,是相对于面向过程来讲的。通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式
单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。
二、知识说明
1、结构体
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
常用的定义方法:
typedef struct
{
变量;
指针;
函数指针;
} 结构体名称_t;
2、指针
指针是地址,指向内存中的变量。
常用的定义方法:数据类型 * 指针名;
3、函数指针
函数指针是指向函数的指针变量。
常用的定义方法:返回值类型 ( * 指针变量名) ([形参列表]);
三、编程说明
1、主函数如下:
系统初始化后,进入主循环,通过结构体调用system文件的函数。
2、结构体类型定义
定义1个变量与2个函数指针。
串口类型定义方法,通过结构体,将串口进行封装。
3、结构体变量定义
定义结构体变量,并进行初始化。 对于函数指针,在c文件中定义函数,再将函数名赋值给函数指针,这样,就可以通过结构体的函数指针调用c文件中的函数。
4、运行函数
由于使用结构体的函数指针调用函数,函数可以声明为static类型,安全性更好。
四、小结
单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。
面向对象编程的知识点很多,本文只是简要的介绍了下,仅仅起到抛砖引玉的作用,日后设计过程中,需要不断的总结经验,沟通交流,以达到真正的理解,灵活运用。

tpgf 发表于 2024-2-1 08:14 | 显示全部楼层
在什么情况下使用结构体是比较好的选择呢
zljiu 发表于 2024-2-1 09:18 | 显示全部楼层
感觉结构体本身就是非常友好的一种数据结构
tfqi 发表于 2024-2-1 21:55 | 显示全部楼层
在结构体里边可以有函数名吗
gwsan 发表于 2024-2-1 22:29 | 显示全部楼层
结构体的大小是由什么来决定的呢
aoyi 发表于 2024-2-1 23:01 | 显示全部楼层
C语言本身就不是一个面向对象的编程语言吧
nawu 发表于 2024-2-1 23:33 | 显示全部楼层
我对结构体最大的感触就是变量用起来非常有归属感
海边浪漫幻象 发表于 2025-9-8 15:28 | 显示全部楼层
基于结构体的面向对象编程,用结构体封装数据成员,用函数指针封装成员方法,模拟类的属性与行为;通过结构体嵌套实现继承;用函数指针数组实现多态。需注意内存管理,通过初始化函数模拟构造,销毁函数模拟析构,提升代码模块化与复用性。
星辰伴梦 发表于 2025-9-11 20:42 | 显示全部楼层
结构体和指针的结合使用,让C语言也能实现类似面向对象的特性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1563

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部