• Linux下C语言实现回调函数的例子


      先理解call和callback

      通常我们写程序,是主动去调厂商或者其他人提供的API,这就是普通的API调用,翻译过来就是 call(我们主动)

      那么如果是我们实现了函数的功能,但是需要厂商或者其他人来触发怎么办(我们被动)?比如检测设备状态变化,最好是有变化立即告诉我们才好,这时候回调函数就很理想了,返回过来就是callback

      一个callback回调的例子

     1 //回调函数的定义和实现
     2 #include <stdio.h>
     3 
     4 //函数只针对额格式为int(*CallBackFun)(char *p),即:返回值(指针名)(参数列表)
     5 //为回调函数命名,类型命名为CallBackFun,参数为char *p
     6 typedef int(*CallBackFun)(char *p);
     7 
     8 //方法A,格式符合CallBackFun的格式,因此可以看做是一个CallBackFun
     9 int A(char *p)
    10 {
    11         printf("-------A 回调打印传入参数 
    -------begin print:%s
    ",p);
    12         return 0;
    13 }
     1 回调函数的调用和执行
     2 #include "callback2.c"
     3 
     4 //执行回调函数的函数
     5 int call(char *p, int(*ptr)(char*))     //或者int call(char *p,int(*ptr)())
     6 {
     7         (*ptr)(p);
     8         return 0;
     9 }
    10 
    11 //main 函数
    12 int main()
    13 {
    14         char *p = "回调函数,请打印字符 lllll";
    15         //call(p,A);            //通过执行函数,调用回调函数
    16         //(*A)(p);              //也可以直接通过函数指针调用回调函数,不经过执行函数,简单高效
    17         A(p);           //这里就更简单了,直接调用回调函数,连函数指针都省了
    18 
    19         return 0;
    20 }
  • 相关阅读:
    JAVA的界面(Swing)
    openlayers优化项
    常用软件下载
    最全的微软msdn原版windows系统镜像和office下载地址集锦
    常用WinPE
    Friends(老友记)(六人行)相关资源
    SAP初级书籍(PM相关)
    第8天:javascriptDOM小 案例、onmouseover 、onmouseout
    第7天:javascript-DOM 获取标签、注册事件改变属性的值、innerText、改变属性的值等
    第6天:数据Array
  • 原文地址:https://www.cnblogs.com/jieliujas/p/12202025.html
Copyright © 2020-2023  润新知