「最终你相信什么就能成为什么。因为世界上最可怕的二个词,一个叫执着,一个叫认真,认真的人改变自己,执着的人改变命运。只要在路上,就没有到不了的地方。」
啥?你说结构体通吃函数和指针是啥意思?其实就是结构体中包含指针和函数指针。下面举个?
i.声明结构体,包含指针和函数指针
ii.给结构体赋值
iii.使用结构体
公司某位大佬写的程序,当然这不是很全面,只贴出了一部分。
当然了看着很复杂,其实呢?也很复杂。???
当然了,他这还定义了结构体数组。今天我只分析一下,结构体中包含函数指针是什么情况。
在说结构体包含函数指针之前需要先了解函数指针是什么?怎么用?
int (*fun)(int temp);//函数指针,第一个()优先级高,所以是指针int *fun(int temp1);//指针函数,()比*优先级高,所以是函数
那么知道如何定义一个函数指针之后,那么究竟它有什么用呢?
举一个?
int FUNCTION (int a,int b);int (*fun)(int temp1,int temp2);fun = FUNCTION;//fun = &FUNCTION;//函数指针可以指向一个函数,但不能像普通指针那样++ --
接下来废话不多说直接贴结构体包含函数指针的代码:
#include #include #include typedef struct student { int id; char name[50]; void (*process)(int id, char *name); }stu;void process(int id, char *name) { printf("process...\n%d\t%s\n",id, name); } int main() { stu *stu1; stu1=(stu *)malloc(sizeof(stu)); //使用的时候必须要先初始化 stu1->id=1000; strcpy(stu1->name,"C Structure"); stu1->process=process; printf("%d\t%s\n",stu1->id,stu1->name); stu1->process(stu1->id, stu1->name); free(stu1); return 0; }
通过结构体封装函数指针的形式,达到实现控制不同种类型数据的目的,只需要,stu1->process(stu1->id, stu1->name);
其实就是相当于c++中的类。
类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。
简单介绍到这里,更加好用的方法还需要自己去尝试,在开发中应用,反思总结。今天到此结束。
反馈:
昨天解决了语音识别模块的购买。
今天需要拍摄翻页时钟的视频,晚上需要骑车回来。
早起早睡感觉还是很好的,但是晚上还是需要更早点睡,卸载无用App。
你知道吗?这样的日子真的很好,我很喜欢进步,从小事做起,坚持,叠被,收拾,整理。努力打造成自己喜欢的生活样子。