函数指针和转移表的用法(c语言)

函数指针和转移表的用法(c语言)

今天阅读<c和指针>,通过思考分享一些技巧
(这里用到的函数之类的都是很简单的,分享一些让代码更有规范性的技巧,方便维护),
代码如下:

#include “stdio.h”
//函数指针 转移表
typedef int Elem ;
Elem Max(Elem x,Elem y);
Elem Min(Elem x,Elem y);
Elem add(Elem x,Elem y);
Elem sub(Elem x,Elem y);
Elem mul(Elem x,Elem y);
void menu();
void package();
int main(){
package();
}
Elem Max(Elem x,Elem y){
return x>y? x:y;
}
Elem Min(Elem x,Elem y){
return x>y? y:x;
}
Elem add(Elem x,Elem y){
return x+y;
}
Elem sub(Elem x,Elem y){
return x-y;
}
Elem mul(Elem x,Elem y){
return x*y;
}
void menu(){
printf(“------0.Max-------\n”);
printf(“------1.Min-------\n”);
printf(“------2.add-------\n”);
printf(“------3.sub-------\n”);
printf(“------4.mul-------\n”);
}
void package(){
Elem choose=0;//初始值为0,防止未知数
menu();
printf(“请输入选择的函数方法 \b”);
scanf(“%d”,&choose);
Elem method_value=0;//用来函数的返回值
printf(“输入用来判断的两个数 \b”);
Elem left_value=0,right_value=0;//函数的实参
scanf(“%d%d”,&left_value,&right_value);
Elem (*method[])(Elem,Elem)={Max,Min,add,sub,mul};//转移表
method_value=methodchoose;//函数的返回值
printf(“值:%d\n”,method_value); ;//测试结果
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值