首页 > 其他分享 >关于函数指针和结构体一起的用法

关于函数指针和结构体一起的用法

时间:2024-06-30 22:20:25浏览次数:1  
标签:return pFunc int 用法 关于 函数指针 多样化

想到单片机中的中断处理不好多样化,一直通过函数指针传递,今天想通过函数指针实现多样化,在中断中放一个要执行的函数指针,在外面可以改变此指针指向的函数。配合结构体的使用,感受到面向对象中class的存在了。

typedef int (*pFunc)(int);//定义一个函数指针类型

int add(int a) {
    return a + a;
}
int pow(char a) {
    int b= a * a;
    return b;
}

void call(pFunc func,int b) {//函数指针作为参数传递,此时面临函数的参数无法传递的问题,可以另用参数b来传
    cout << func(b) << endl;
}


typedef struct {
    int a;
    char b;
    int (*callA)(int);
    int (*callB)(char);

}Setup;//结构体类型定义


Setup timSetup = {300,200,add,pow};//结构体定义并初始化,将两个前面定义的函数赋给两个函数指针


void callBack(void) {
    cout << timSetup.callA(timSetup.a) << endl;//执行结构体中的函数
    cout << timSetup.callB(timSetup.b) << endl;
}

int main()
{
    callBack();//执行回调函数
}

 

标签:return,pFunc,int,用法,关于,函数指针,多样化
From: https://www.cnblogs.com/buckm/p/18277054

相关文章

  • 关于Java中 因取消装箱可能产生 'NullPointerException' 的原因
    一.什么是装箱,什么是拆箱?装箱:将值类型转换为引用数据类型。拆箱:将引用数据类型转换为值类型。说白了就是Integer与int数据类型之间的转换二.为什么会有自动一说呢?我们都知道,java是一个面向对象的语言。因此包括数字、字符、日期、布尔值等等再内的一切都是对象。但是对......
  • 关于VPX标准的相关解读
        VPX标准,全称为VITA46,是由VITA(VMEInternationalTradeAssociation,VME国际贸易协会)于2007年提出的新一代高速串行总线标准。该标准设计初衷是为了保护并延续VME总线的应用,同时面向更高端的需求,如高密度、高性能计算、更大的带宽、强化的电源管理以及在恶劣环境下的......
  • 51 stm32开发关于keil mdk的软件配置常用设置 以及 可能会出现的报错总结
    首先左上角那个魔术棒中,是关于下载烧录软件编译的option选择我们点开他进入target需要我们配置的就两处,1:Xtal:填8.0mhz只是因为要填个数代表stm32(外部高速晶振)或(其他晶振)作为主频时钟的时钟源时的晶振大小方便烧录时对一些代码(对芯片的时钟要求高的代码)的自动编译,实际上......
  • 关于我家的车
    我把我的迈巴赫s580卖了,又买了两辆车:1.川崎zx四缸-25R2024款川崎ZX25R。迟来了,250系列数据上最强的一台车,并且还是四缸。日本售价为:9525000日元(约合人民币:4万6)印尼版售价为:127100000印尼盾(约合人民币:5万8左右)2.兰博基尼大牛埃文塔多780匹这可比之前的我的第一辆evo兰博小......
  • 关于数据倾斜的深度探讨?
    温馨提示:(内容较多,为避免读者逻辑混乱,请严格按照大纲目录逻辑浏览)一、啥是数据倾斜?        数据倾斜是指在分布式数据处理系统(如Hadoop、Spark)中,数据分布不均衡导致某些节点(或任务)处理的数据量远远大于其他节点(或任务)的现象。这会导致负载不均衡,降低整个系统的性能......
  • 关于锁的使用,千万不要踩这个坑!(附带Synchronized详解和ZooKeeper、Redis等分布式锁详解
    1、分布式锁在分布式系统中,我们经常会使用各种锁来保证数据的一致性和并发安全。一些常见的分布式锁实现包括:基于ZooKeeper的分布式锁:使用ZooKeeper节点的特性来实现分布式锁。基于Redis的分布式锁:利用Redis的原子性操作和过期时间特性来实现分布式锁。Redlock算法:由......
  • 解析及修复策略:关于akisp11.dll的作用与丢失问题
    akisp11.dll是一个与Akamai安全或加速技术相关的动态链接库文件,Akamai是一家提供内容分发网络(CDN)服务和云安全解决方案的公司。此DLL文件可能用于实现网页内容加速、安全浏览保护、或是与Akamai的某些安全产品和服务整合的功能,确保用户在浏览网页时的数据传输安全和性能优化。......
  • 关于 KL 散度和变分推断的 ELBO
    01KL散度Kullback-Leibler(KL)散度,是一种描述一个概率分布\(P\)相对于另一个概率分布\(Q\)的非对称性差异的概念。KL散度是非负的;当且仅当两个分布相同时,它为零。1.1定义对于离散概率分布,\(P\)和\(Q\)的KL散度定义为:\[\text{KL}(P\|Q)=\sum_{\mathbf{x......
  • jmeter中beanshell-regex用法-prev.getTime()
    jmeter-beanshellPostprocessor,实现需求:判断响应时间大于10ms的响应,并记录想要的响应字段,比如流水号,注册的用户名密码等代码如下:importjava.util.regex.Matcher;importjava.util.regex.Pattern;//这里引入判断响应时间的代码,如判断响应时间超过10ms,则记录流水号longresp......
  • 关于随机游走的思考
    前话很早就想给随机游走类问题做个总结了,以后又想到一题不定期更新。2024.6.22题目描述一维空间内,前进一步,后退一步,原地不同概率均为\(\cfrac{1}{3}\),\(0\)点后退后还是\(0\)点。求从\(0\)点走到右端点\(n\)的期望步数。解决套路化记\(f[i]\)表示从\(i\)走到\(......