回调函数学习
https://www.zhihu.com/question/19801131,这个下面的回答都很高质量。
1、介绍
https://www.cnblogs.com/smartlife/articles/12519130.html
先传入后被调用的函数。也是普通函数,因为程序通过参数把该函数的函数指针传递给了其它函数,在那个函数里面调用这个函数指针就相当于调用这个函数,这样的过程就叫回调,而被调用的函数就叫回调函数。回调的本质是函数指针传递。
2、例子
#include <bits/stdc++.h> using namespace std; typedef bool (*callback)(uint32_t status);//1.声明函数原型 bool call(uint32_t status){//2、声明回调函数 if(status!=2){ return false; } return true; } void func(callback cb=nullptr){//3、定义调用回调函数的函数 set<uint32_t> st={1,2,3,4}; for(const auto s:st){ if(cb!=nullptr&&cb(s)){//4、调用回调函数 cout<<s<<" "; } } cout<<"end func.\n"; } int main() { func(); func(call);//5、调用函数 return 0; }