您的位置:首页 > 其它

typedef使用大全(指向函数的指针)

2008-06-24 22:39 423 查看
#include <stdio.h>

typedef int (* FP_CALC)(int, int);

int add(int a, int b) { return a + b; }

int sub(int a, int b) { return a - b; }

int mul(int a, int b) { return a * b; }

int div(int a, int b) { return b? a/b : -1; }

FP_CALC calc_Func(char op)

{

switch (op)

{

case '+': return add;

case '-': return sub;

case '*': return mul;

case '/': return div;

default: return NULL;

}

return NULL;

}//定义一个返回值为FP_CALC的函数。

int calc(int a, int b, char op)

{

extern FP_CALC calc_Func(char op);

if(calc_Func(op))return (calc_Func(op))(a,b);

else return -1;

}

int main(void)

{

int a = 100, b = 20;

printf("calc(%d, %d, %c) = %d/n", a, b, '+', calc(a, b, '+'));

printf("calc(%d, %d, %c) = %d/n", a, b, '-', calc(a, b, '-'));

printf("calc(%d, %d, %c) = %d/n", a, b, '*', calc(a, b, '*'));

printf("calc(%d, %d, %c) = %d/n", a, b, '/', calc(a, b, '/'));

return 0;

}

//运行结果

calc(100, 20, +) = 120

calc(100, 20, -) = 80

calc(100, 20, *) = 2000

calc(100, 20, /) = 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: