C语言之以函数指针结构体方式实现面向对象的思想

Posted owndefine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言之以函数指针结构体方式实现面向对象的思想相关的知识,希望对你有一定的参考价值。

  在一些嵌入式项目中,我们会遇到一个大模块的处理会涉及到很多模块函数封装,但是由于函数过多往往会不易于模块化和管理,如果引入面向对象中类的思想就会好解决的多,但是C不支持面向对象的实现,所以我们可以利用函数指针的方式来进行模拟类的实现,可参考下例:

技术图片

技术图片

 

此处附上Linux编译器下执行后的打印信息:

技术图片

 

 

这样,我们就实现了模块话的处理,更方便我们进行模块管理,当然,重要是掌握这种思想。

但是,需要注意:

  这类方法只支持附带内存管理的MCU可运用这样的思想,比如支持Linux内核的MCU。为何这样说呢,因为此处需要用到malloc函数进行动态的分配内存空间。

关于这一点,我已在stm32f10x上进行了测试和验证。

 

以上是关于C语言之以函数指针结构体方式实现面向对象的思想的主要内容,如果未能解决你的问题,请参考以下文章

结构体实现面向对象编程

如何用C语言实现OOP

如何在C语言里实现“面向对象编程”

Go语言简易的面向对象之结构体和从此突破指针

Golang中的构造函数

谈面向对象思想在C语言的运用