当前位置:首页 > 技术 > C/C++ > 正文内容

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

watrt5年前 (2019-09-16)C/C++10930

先上学习代码:

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

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

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

分享给朋友:

相关文章

linux和windows下 C/C 的sleep函数

linux和windows下 C/C 的sleep函数

简介:函数名: sleep功 能: 执行挂起一段时间用 法: unsigned sleep(unsigned seconds);在VC中使用带上头文件#include <windows.h>在gcc编译器中,使用的头文件因gcc版本的不同而不同linux系统需要添加的头文件  #include <unistd.h>注意:在VC中Sleep中的第一个英文字符为大写的"S"在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什...

arduino esp32开发板安装困难解决方法

arduino esp32开发板安装困难解决方法

最近想使用arduino来编辑一下esp32固件,结果出师不利,IDE迟迟安装不好。下面提供一下解决方法供大家参考。我使用的是arduino是1.8.19版,在新版本上没有尝试过。但是思路应该差不多吧。首先在在arduino IDE中设置乐鑫的附加开发板的地址:https://dl.espressif.com/dl/package_esp32_index.json stm32:http://dan.drown.org/stm32duino/package_STM32duino_index.jso...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。