zoukankan      html  css  js  c++  java
  • 函数指针做函数参数

    回调函数的本质:提前做了一个协定(把函数的参数、返回值提前定义好)

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 
     5 
     6 //任务实现者
     7 int myadd(int a, int b)
     8 {
     9     printf("func add() do...
    ");
    10     return a + b;
    11 }
    12 
    13 int myadd2(int a, int b)
    14 {
    15     printf("func add2() do...
    ");
    16     return a + b;
    17 }
    18 int myadd3(int a, int b)
    19 {
    20     printf("func add3() do...
    ");
    21     return a + b;
    22 }
    23 int myadd4(int a, int b)
    24 {
    25     printf("func add4() do...
    ");
    26     return a + b;
    27 }
    28 
    29 typedef int (*MyTypeFuncAdd)(int a, int b);  //定义类型
    30 
    31 //任务调用者
    32 int MainOp(MyTypeFuncAdd myFuncAdd)
    33 {
    34     int c =myFuncAdd(5, 6);
    35     return c;
    36 }
    37 
    38 
    39 int MainOp2(int(*MyPointerFuncAdd)(int a, int b))
    40 {
    41     int c = MyPointerFuncAdd(5, 6);
    42     return c;
    43 }
    44 
    45 void main()
    46 {
    47     MyTypeFuncAdd myFuncAdd = myadd;
    48     myFuncAdd(3, 4);     //间接调用
    49 
    50     myadd(1, 2);         //直接调用
    51     MainOp2(myFuncAdd);   //myFuncAdd  
    52     MainOp(myFuncAdd);
    53 
    54     //在mainop框架,不发生变化的情况下,调用后来者的程序
    55     MainOp(myadd2);   //传入的是函数的入口地址
    56     MainOp(myadd3);
    57     MainOp(myadd4);
    58 
    59 
    60     printf("Hello...
    ");
    61     system("pause");
    62     return ;
    63 }
  • 相关阅读:
    CentOS同步时间
    使用dnsmasq来提升CentOS上网速度
    bash的变量设置
    CentOS找回root密码
    知识学习网站
    webservice接口测试,使用SoapUI工具进行接口测试
    js中字符串转换为数字
    css颜色大全
    Table分页显示调整
    iframe中,页面转换后回到页面的顶部
  • 原文地址:https://www.cnblogs.com/zmm1996/p/11752882.html
Copyright © 2011-2022 走看看