先看一段代码:
#include <stdio.h>
void docook(int time)
{
printf("做饭 -- %d min/n", time);
}
void doclean(int time)
{
printf("清洁 -- %d min/n", time);
}
void callback(int time, void (* dosomething)(int))
{
int min;
if(time == 1)
{
min = 30;
}
else if(time == 2)
{
min = 60;
}
else
{
min =15;
}
dosomething(min);
}
void main(void)
{
callback(1, docook);
callback(2, doclean);
callback(3,docook);
}
我在刚开始很长一段时间都对回调不是很理解,或者不知道什么时候用到回调函数,后来在工作过程中经常用到这种方式了
就慢慢的对回调的理解就加深了,我想写出来让初学者能够更容易理解什么是回调函数,什么时候会用到回调函数。
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。