标签:回调函数
在了解回调函数之前,你应该先去了解函数指针!!!
先看一个回调函数的例子:
#include <stdio.h> #include <iostream> void Call(void (*fp)(int) ,int x) //Call为调用者,fp为指向回调函数的函数指针 { fp(x); } void CallBackFun1(int x) //CallBackFun1为回调函数 { printf("回调函数CallBackFun1中输出:%d\n",x); } void CallBackFun2(int x) //CallBackFun2为回调函数 { printf("回调函数CallBackFun2中输出:%d\n",x); } int main() { Call(CallBackFun1,10); Call(CallBackFun2,20); system("pause"); }
输出结果为:
假设CallBackFun是回调函数,Call是调用者,Call函数参数中有一个参数是指向CallBackFun的函数指针,即回调CallBackFun,同时Call函数另外的参数传递给CallBackFun作为参数。
那么:Call调用CallBackFun,CallBackFun又利用了Call给的参数。
CallBackFun就是回调函数,Call就是调用者。
-----------------------------------------------------END------------------------------------------------------------------------
void Call(void (*fp)(int),int x)
{
fp(x);
}
等价于:
typedef void (*CallBackFun)(int);
void Call(CallBackFun fp,int x)
{
fp(x);
}
标签:回调函数
原文地址:http://blog.csdn.net/gateway6143/article/details/29612027