#include<stdio.h>
int operate_wps(){
printf ("--3333333333333\n");
return 0;
}
void extern_wps_fun(int (*callback)()){
printf("++++22222222222222222\n");
//int result = callback();
callback();
printf("++++1111111111111111111111\n");
}
int main(){
extern_wps_fun(operate_wps);
return 0;
}
第一种写法:
void extern_wps_fun(int (*callback)()) {
int result = callback();
}
在这种写法中,callback 是一个函数指针参数,它接受一个函数作为输入,并将该函数执行的结果存储在 result 变量中。通过调用 callback(),即使用函数指针调用传入的函数。
意思是 extern_wps_fun 函数会接受一个函数作为参数,并通过函数指针 callback 调用该函数。然后将函数调用的结果存储在 result 变量中。
第二种写法:
void extern_wps_fun(int (*callback)()) {
int result = callback;
}
在这种写法中,callback 仍然是一个函数指针参数,但没有对它进行调用操作。相反,直接将函数指针赋值给 result 变量。
这意味着 extern_wps_fun 函数只是将传入的函数指针 callback 的值赋给了 result 变量,并没有实际调用传入的函数。
因此,这两种写法的意义有明显不同。第一种写法会调用传入的函数并将其结果存储在变量中,而第二种写法只是将函数指针的值赋给了变量,没有实际调用传入的函数。根据具体需求,选择适合的写法来达到期望的功能。
回调函数test代码
于 2023-06-25 10:00:30 首次发布