关于C语言中回调函数的学习
先上学习代码:
#include "stdio.h" int my_cb1(int x){ x++; printf("my_cb1执行了,x:%d\n",x); x++; return x; } void run_cb1(int (* mycb)(int),int x){ int y; y=(* my_cb1)(x); printf("my_cb1调用完了 Y:%d\n",y); } void my_cb(void){ printf("my_cb执行了\n"); } void run_cb(void (* mycb)(void)){ (* my_cb)(); printf("my_cb调用完了\n"); } int main(int argc, char const *argv[]) { run_cb(my_cb); run_cb1(my_cb1,4); return 0; }
共四个函数:一个是回调,一个是运行回调,一个是没有参数一个是有参数。
运行函数的参数必须与传递的函数一致,否则会出错。同样的回可返回。运行函数可以在第二参数后面添加上要带到回调的参数。这样实现回调时可以传参。