你的位置:首页 > 技术 > C/C++

关于C语言中回调函数的学习

2019-09-16 浏览:(21) C/C++ 评论(0)

先上学习代码:

#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;
}

共四个函数:一个是回调,一个是运行回调,一个是没有参数一个是有参数。

运行函数的参数必须与传递的函数一致,否则会出错。同样的回可返回。运行函数可以在第二参数后面添加上要带到回调的参数。这样实现回调时可以传参。