回调函数

来源:互联网 发布:安卓短信软件 编辑:程序博客网 时间:2024/06/05 14:31

当函数指针(函数名)做为函数的参数,传递给一个被调用函数,被调用函数就可以通过这个指针调用外部的函数,这就形成了回调。

回调函数:利用函数指针做函数参数,实现的一种调用机制,具体任务的实现者,可以不知道什么时候被调用。

#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include<stdio.h>#include <string.h>//子任务的实现者int add(int a,int b){printf("func add() do ....\n");return a + b;}//子任务的实现者int add1(int a,int b){printf("func add1() do ....\n");return a + b;}//子任务的实现者int add2(int a,int b){printf("func add2() do ....\n");return a + b;}//子任务的实现者int add3(int a,int b){printf("func add3() do ....\n");return a + b;}//定义一个类型typedef int (*myTypeFunc)(int a,int b);//框架int mainOp(myTypeFunc func){func(5,6);return 0;}//框架int mainOp2(int (*myTypeFunc)(int a,int b) ){myTypeFunc(5,6);return 0;}//任务的调用者int main(){//myTypeFunc myfunc;//myfunc = add;//myfunc(1,2);mainOp(add);mainOp2(add);mainOp2(add1);mainOp2(add2);mainOp2(add3);system("pause");return 0;}

回调函数的本质:提前做了一个协议的约定(把函数的参数、函数返回值提前约定)

请思考:C编译器通过哪个具体的语法,实现解耦合的?

C++编译器通过多态的机制(提前布局vptr指针和虚函数表,找虚函数入口地址来实现)

回调机制原理:当具体事件发生时,调用者通过函数指针调用具体函数。回调机制的将调用者和被调函数分开,两者互不依赖,任务的实现和任务的调用可以耦合 (提前进

行接口的封装和设计)



0 0
原创粉丝点击