回调函数学习

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

 

posted @ 2020-10-27 19:08  lypbendlf  阅读(86)  评论(0编辑  收藏  举报