...
...
int main(void)
{
int sw = 1;
while(1)
{
if(sw)
{
sw = 0;
Task1();
}
else
{
sw = 1;
Task2();
}
}
return 0;
}
Task1:
void (*pfunc)(void) = NULL;
void T1_Set(void (*p)(void))
{
pfunc = p;
}
void Task1()
{
...
if(条件满足){
if(NULL != pfunc){
pfunc();
}
}
}
Task2:
void T2_clear()
{
//满足条件后执行的函数
}
void Task2()
{
....
if(关注)
{
T1_Set(T2_clear);
}
}
回调函数的意义:将数据和处理分离,解耦。