zoukankan      html  css  js  c++  java
  • 回调函数

    回调函数:让客户端自己决定返回值是什么。

    我想杀一个人

    用刀

    用枪

    如果用刀 比较费时间

    如果用枪 速度快但是要消耗子弹。

    让客户端自己选择

    //回调函数测试
    
    function knife(){
    echo "用刀了";
    }
    
    function gun(){
    echo "用枪了";
    }
    
    function call($pcall){
            $pcall();
    }
    
    call("knife");
    回调函数的例子
    
    #include<stdio.h>
    
    // 方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)
    typedef int (*CallBackFun)(char *p); // 为回调函数命名,类型命名为 CallBackFun,参数为char *p
    
    int Afun(char *p) {    // 方法 Afun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
        printf("Afun 回调打印出字符%s!
    ", p);
        return 0;
    }
    
    int Cfun(char *p) {    // 方法 Bfun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
        printf("Cfun 回调打印:%s, Nice to meet you!
    ", p);
        return 0;
    }
    
    int call(CallBackFun pCallBack, char *p) { // 执行回调函数,方式一:通过命名方式
        printf("call 直接打印出字符%s!
    ", p);
        pCallBack(p);
        return 0;
    }
    
    // int call2(char *p, int (*ptr)(char *p)) 
    int call2(char *p, int (*ptr)()) { // 执行回调函数,方式二:直接通过方法指针
        printf("==============
    ", p); 
        (*ptr)(p); 
    }
    
    int call3(char *p, CallBackFun pCallBack){ // 执行回调函数,方式一:通过命名方式
        printf("--------------
    ", p);
        pCallBack(p); 
    }
    
    int main() {    
    
        char *p = "hello";
    
        call(Afun, p);
        call(Cfun, p);
    
        call2(p, Afun);
        call2(p, Cfun);
    
        call3(p, Afun);
        call3(p, Cfun);
    
        // int i = getchar();
        // printf("Input: %c 
    ", i);
    
        return 0;
    }
  • 相关阅读:
    PHP学习当中遗漏的知识点
    sql必知必会(第四版) 学习笔记
    servlet 笔记
    sql server 快捷键
    233
    第 四 课 数据类型
    第三课 go语言基础语法
    第二课 go语言的结构
    第 1 课 Go 简介
    linux 学习 查看文件占用空间大小
  • 原文地址:https://www.cnblogs.com/canbefree/p/3673276.html
Copyright © 2011-2022 走看看