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