typedef定义函数指针的用法
http://lengjing.iteye.com/blog/910392
1. typedef有点类似于#define宏,用来定义一个同义的新的类型。用typedef来定义函数指针形式如下:
- typdef int (*pFunc)(int, int);
typdef int (*pFunc)(int, int);
如果我们有一个函数:
- int Add(int a, int b)
- {
- return a +b;
- }
int Add(int a, int b)
{
return a +b;
}
那么我们可以这样用:
- pFunc pf;
- pf = Add;
- int n = pf(3, 4);
pFunc pf;
pf = Add;
int n = pf(3, 4);
如意对于上面的定义可以这样理解:去掉typedef就形如正常的定义。同样的方式我们可以定义指针类型:
typedef int *p;
这样就可以用p来定义一个int型的指针类型了。
2. 一个复杂点的例子:
- typedef int (*pFunc)(int, int);
- pFunc function1(char op);
-
-
-
-
-
- int add(int a, int b)
- {
- return a + b;
- }
-
- int (*function2(char op))(int, int)
- {
- return function1(op);
- }
-
- pFunc function1(char op)
- {
- switch (op) {
- case '+': return add;
- default: return NULL;
- }
-
- return NULL;
- }
-
- int calc_func(int a, int b, char op)
- {
- pFunc fp = function1(op);
- return fp(a, b);
- }
-
-
- int a = 100, b = 200;
- int c = calc_func(a, b, '+');
阅读(2628) | 评论(0) | 转发(0) |