回调函数、函数名与函数地址理解

本文介绍了回调函数的实现,包括在同一文件和类中的应用,强调回调函数必须是全局或静态成员函数。同时,探讨了函数名与函数地址的关系,指出函数名实际上是一个常量函数指针,并列举了不同形式的函数指针作为参数的使用方式。
摘要由CSDN通过智能技术生成

一、回调函数在同一文件中的实现

首先看函数原型与函数指针定义的区别:

函数原型:void fun();

函数指针:void (*fun) ();//为简化可自定义一下为:typedef void (*FUN) ();

 

回调函数实现代码:

typedef void (*CALLBACK) (); //把一个void (*fun) ()这样的函数指针自定义为CALLBACK;

 

void callback() //回调函数

{

     cout << "this is in callback function!" << endl;

}

 

void funB(CALLBACK cb) //参数为一个函数指针

{

     cb();//在此处回调,注意一定要加(),如果回调函数有参数,应该传参数进去

}

 

int main(int argc, char **argv)

{

      funB(&callback);//此处可传callback,也可传&callback,在后面会详细解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值