frontcon函数用不了_结构体通吃指针和函数指针

「最终你相信什么就能成为什么。因为世界上最可怕的二个词,一个叫执着,一个叫认真,认真的人改变自己,执着的人改变命运。只要在路上,就没有到不了的地方。」

啥?你说结构体通吃函数和指针是啥意思?其实就是结构体中包含指针和函数指针。下面举个?

i.声明结构体,包含指针和函数指针

73729d11b25ae5e9c7e7adddacac9f7c.png

ii.给结构体赋值

db1347e16f59d74d7e93847d031e1b1c.png

iii.使用结构体

e6ee87f7b6f6ba2a4014a57ea11357b1.png

公司某位大佬写的程序,当然这不是很全面,只贴出了一部分。

当然了看着很复杂,其实呢?也很复杂。???

当然了,他这还定义了结构体数组。今天我只分析一下,结构体中包含函数指针是什么情况。

在说结构体包含函数指针之前需要先了解函数指针是什么?怎么用?

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;  }

6f49cb922a53a0c3d73363a122603cef.png

通过结构体封装函数指针的形式,达到实现控制不同种类型数据的目的,只需要,stu1->process(stu1->id, stu1->name);

其实就是相当于c++中的类。

类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

简单介绍到这里,更加好用的方法还需要自己去尝试,在开发中应用,反思总结。今天到此结束。

反馈:

昨天解决了语音识别模块的购买。

今天需要拍摄翻页时钟的视频,晚上需要骑车回来。

早起早睡感觉还是很好的,但是晚上还是需要更早点睡,卸载无用App。

你知道吗?这样的日子真的很好,我很喜欢进步,从小事做起,坚持,叠被,收拾,整理。努力打造成自己喜欢的生活样子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值