1 #include <stdio.h>
2 int inc(int a)
3 {
4 return ++a;
5 }
6 int multi(int* a,int* b,int* c)
7 {
8 return *c = *a * *b;
9 }
10 typedef int (FUNC1)(int in);
11 typedef int (FUNC2)(int*,int*,int*);
12 void show(FUNC2 fun,int arg1,int* arg2)
13 {
14 FUNC1 p = &inc;
15 int temp = p(arg1);
16 fun(&temp,&arg1,arg2);
17 printf("%d\n",*arg2);
18 }
19 int main(void)
20 {
21 int a;
22 show(multi,10,&a);
23 return 0;
24 }
这样编译无法通过,但是第10行换成typedef int(*FUNC1)(int);就可以了.
我向问下typedef int(FUNC1)(int in);
和typedef int(*FUNC1)(int in);有什么区别?
还有FUNC1 p = &inc;和FUNC1 p = inc;有什么区别?
大神们顶起啊,被弄晕了.
2 int inc(int a)
3 {
4 return ++a;
5 }
6 int multi(int* a,int* b,int* c)
7 {
8 return *c = *a * *b;
9 }
10 typedef int (FUNC1)(int in);
11 typedef int (FUNC2)(int*,int*,int*);
12 void show(FUNC2 fun,int arg1,int* arg2)
13 {
14 FUNC1 p = &inc;
15 int temp = p(arg1);
16 fun(&temp,&arg1,arg2);
17 printf("%d\n",*arg2);
18 }
19 int main(void)
20 {
21 int a;
22 show(multi,10,&a);
23 return 0;
24 }
这样编译无法通过,但是第10行换成typedef int(*FUNC1)(int);就可以了.
我向问下typedef int(FUNC1)(int in);
和typedef int(*FUNC1)(int in);有什么区别?
还有FUNC1 p = &inc;和FUNC1 p = inc;有什么区别?
大神们顶起啊,被弄晕了.

