首页 > 其他分享 >函数指针与回调函数

函数指针与回调函数

时间:2024-07-09 16:23:47浏览次数:13  
标签:函数 形参 int 类型 函数指针 回调 个性化

#include<iostream>
using namespace std;
//函数指针就是指向函数的指针

/*
* 用途:
    函数A要作为实际参数传递给函数B,在B中调用,应该就是回调函数。这时候就要用函数指针。

    因为有些功能是流程中的一部分,但是不清楚,需要个性化,只能把公共流程写好,中间穿插个性化内容,
    然后这时候把用函数指针存储个性化功能的地址,然后当成参数传递给总流程函数,在里面调用
*/


// 1、要知道函数的类型:
//    函数类型不看函数名和形参名,看返回值类型和参数列表
//        只要返回值类型一样,形参类型和个数一一对应,那就是一类函数,
//        可以用一个函数指针指。
//
// 2、函数指针的形式:
//        int (*funptr1)(int,string);
//        由于*号优先级较高,且自右向左结合,没有括号的话会先和int结合,这样就不是函数指针了,
//        是返回值为地址的函数。
//        
//        函数指针里面的形参,只要个数和形参类型一样就行,带不带形参变量名 无所谓

//        调用的时候,直接把函数指针名加括号,传上参数就可以了。C语言要在函数指针名字上加(*)
//        fun1ptr(12, "asdasd");


//声明一个打铁流程函数,锻造手法是个性化的东西,没法通用

void duanzao1(void)
{
    cout << "三枚钢" << endl;

}
void duanzao2(void)
{
    cout << "扭转大马士革" << endl;
    

}
void duanzao3(void)
{
    cout << "雨滴大马士革" << endl;

}

void datie(void (*duanzaoptr)(void))
{
    cout << "准备钢材!" << endl;
    cout << "准备锤子!" << endl;
    cout << "开炉烧铁!" << endl;
    //锻造每人各不相同
    duanzaoptr();
    cout << "淬火!" << endl;
    cout << "研磨!" << endl;
    cout << "测试!" << endl;
}

int main(void)
{
    //函数名就是地址,可以作为实参直接传递给  形参是 函数指针的  函数 ,

    datie(duanzao2);

}

 



标签:函数,形参,int,类型,函数指针,回调,个性化
From: https://www.cnblogs.com/modianmoz/p/18292177

相关文章

  • 组合API-reactive函数
      <template><divclass="container"><div>{{obj.name}}</div><div>{{obj.age}}</div><button@click="updateName">修改数据</button></div></template><script......
  • php函数入门学习(date&time&strtotime)
    1.date()date()函数是PHP中用于格式化日期和时间的一个非常常用的函数。它可以根据指定的格式字符串返回当前时间或指定时间的日期和时间。 基本语法:stringdate(string$format[,int$timestamp=time()])-`$format`:一个格式化字符串,定义了输出的日期和时间的......
  • 九,MYSQL之存储过程,实际就是用slq写函数,封装方法
    目录一,概念    1,介绍.    2,特性    3,作用二,格式    简单的存储过程案例基本格式:三,变量    1,局部变量        2,变量赋值     3,会话变量 3,系统变量四,参数    1,in参数   ......
  • Python函数进阶:高阶函数与函数式编程实战
    前言大家好!今天我们来探讨一个非常有趣且实用的话题——Python函数进阶,特别是高阶函数与函数式编程。记得上次我在一个项目中需要处理复杂的数据流,通过高阶函数和函数式编程,我不仅简化了代码,还提高了运行效率。说到这里,大家是否也想掌握这门技术呢?让我们一起深入了解Pytho......
  • Studying-代码随想录训练营day33| 动态规划理论基础、509.斐波那契函数、70.爬楼梯、7
    第33天,动态规划开始,新的算法......
  • QT设置回调函数给python调用——参数法
    这种方法将回调函数作为python函数参数对象的方法来使用。Qt已经添加了Python库,并且能够正常调用Python的API,可以成功调用Python的代码块,这部分可以参考我另外一篇博客:QT中调用python中的函数-Henkk-博客园(cnblogs.com)1.QT相关函数定义1.1创建回调函数例如下面两个函......
  • 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数, 在
    /编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。/#include<stdio.h>#include<string.h>#include<ctype.h>intfun(char*buff){intsum=0;while(*buff......
  • Python——习题练习 part3 函数进阶
    本篇文章记录函数进阶部分的知识点及例题代码。目录六,函数进阶01 函数的多返回值02函数的传参方式 1,位置参数2,关键字参数3,缺省参数4,不定长参数a,位置传递b,关键字传递03lambda匿名函数六,函数进阶01 函数的多返回值#函数的多返回值deftest_return():......
  • 如何在keil中将关键函数打包生成lib库
    作用:有时候在团队中做工程或者给外面的人做项目时,当我们辛苦了大半月写出了一个驱动程序或者算法,基于合作的需要,需要我们将自己调通的代码奉献给团队或者提交给你的甲方。基于我们个人意愿是很不愿意的,毕竟那是我们辛辛苦苦写出来的,但是又不能不交,耽误项目进程。这时候,keil的打......
  • QT中调用python中的函数
    1.创建py文件例如名为“python_script.py”的python文件:#python_script.pydefgreet(name):return"Hello,"+name+"!" 2.Qt的pro文件中包含python的头文件和库INCLUDEPATH+=python解释器的安装目录\includeLIBS+=-Lpython解释器的安装目录\libs-lpyt......