当前位置:首页 > 编程语言 > 正文

C语言回调函数

11-19 编程语言

标签:执行   nbsp   完成后   roc   异步   回调   void   ini   something   

回调函数刚开始理解的时候是有点困难,回调函数主要的目的是让使用者通过函数处理掉数据,不需要再次读取当前操作的完成状态,从而实现功能。

以异步写入EEPROM为例:

如果在异步写入E2之后,原本的操作是让使用者轮询当前任务是否完成,这样写出来的代码类似于:

if(true == E2WriteFinish())
{
//TODO something
}

 

等待写完之后再执行其他任务,但是如果使用回调函数,就可以在写入的时候附加一个回调的钩子,类似于这样:

1 EepromWrite(int* data,int length,int address,void (*p)(int result));

最后这个就是丢给写任务的回调函数,然后我们可以自己写这个任务完成后需要做的事情:

void E2WriteFinishProcess(int result)
{
//TODO something
}

整个函数执行的流程是这样的

使用者调用 EepromWrite()→函数执行→在里边调用(*p)(result);

这样对使用者来说只需要执行写函数就可以了,不用在每次周期轮询是否异步写完了的操作。如果理解了的话回调函数还是比较简单的。

 

 

 

C语言回调函数

标签:执行   nbsp   完成后   roc   异步   回调   void   ini   something   

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/biancheng/12251.html