对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别。
1. 普通函数调用
一般为实现方在其函数体执行过程中直接调用。
代码示例:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std;
void func(){
printf("HelloWorld");
}
int main(void){
func();
return 0;
}
回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应,一般用于函数传参。
代码示例:
#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;
}