typedef使用大全3(指向函数的指针)//typedef的使用可以隐藏复杂的函数指针语法

#include <iostream> 
#include <string>
#include <stdio.h>

//函数声明
int myAdd(int,int);
int mySub(int,int);
int myMul(int,int);
int myDiv(int,int);
//
typedef int (*FP_CALC)(int,int);//定义一个函数指针的类型,int类型,类型名为FP_CALC 
FP_CALC calc_func(char op);//这里利用自己定义的类型名FP_CALC定义了一个指针函数!
int calc(int a,int b,char op);
///
int myAdd(int a,int b)
{
 return a+b;
}
int mySub(int a,int b)
{
 return a-b;
}
int myMul(int a,int b)
{
 return a*b;
}
int myDiv(int a,int b)
{
 return b?a/b:-1;
}
FP_CALC calc_func(char op)

    switch (op)
 {
 case '+': return myAdd;
 case '-': return mySub;
    case '*': return myMul;
 case '/': return myDiv;  
    default:    return NULL; 
    } 
    return NULL;
}

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

    FP_CALC fp = calc_func(op);
 if (fp)
  return fp(a, b);
 else
  return -1; 
}

void main()
{
 int a = 100,b = 20;
 printf("calc(%d,%c,%d) = %d/n", a,'+', b, calc(a, b, '+'));
    printf("calc(%d,%c,%d) = %d/n", a,'-', b, calc(a, b, '-'));
    printf("calc(%d,%c,%d) = %d/n", a,'*', b, calc(a, b, '*'));
    printf("calc(%d,%c,%d) = %d/n", a,'/', b, calc(a, b, '/'));
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值