对c语言回调函数的理解

来源:互联网 发布:知乎pc客户端下载 编辑:程序博客网 时间:2024/05/17 21:58

对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别。


1. 普通函数调用


一般为实现方在其函数体执行过程中直接调用。


代码示例:


#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>using namespace std;void func(){printf("HelloWorld");}int main(void){func();return 0;}


2. 回调函数调用(需使用函数指针)


回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应,一般用于函数传参。


代码示例:


#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>using namespace std;char* display(void){char *str = "HelloWorld";return str;}char* func(char* (*fp)(void)){return (*fp)();}int main(void){printf("%s",func(display));return 0;}