谁能举个例子讲讲函数int (*func(int)) (int *,int);的用法呢
[b]问题补充:[/b]
func(int i)没有阐释吧
...>>>o=>...
[code="c"]#include
#define NULL 0
#define ASGN 1
#define MUL 2
int asgn(int* a, int b) {
return *a = b;
}
int mul(int* a, int b) {
return *a * b;
}
int (*func(int op))(int*, int) {
switch (op) {
case ASGN:
return &asgn;
case MUL:
return &mul;
}
return NULL;
}
int main() {
int i = 0xFEED, j = 0xBEEF;
printf("%x\n", func(ASGN)(&i, j)); // beef
printf("%x\n", func(MUL)(&i, j)); // 8e67a321
printf("%x, %x\n", i, j); // beef, beef
return 0;
}[/code]
想怎么玩都OK ...<=o<<<...
[code="c"]int foo(int* a, int b) {
return 0;
}
int (*func(int i))(int*, int) {
return &foo;
}[/code]
加长点,
[code="c"]#include
int foo(int* a, int b) {
return b + 1;
}
int (*func(int i))(int*, int) {
return &foo;
}
int main() {
printf("%d\n", func(1)((int*)0, 2)); // 3
return 0;
}[/code]