函数指针做函数参数

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

 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 }
原文地址:https://www.cnblogs.com/zmm1996/p/11752882.html