回调函数的运用
来源:互联网 发布:模仿声音软件下载 编辑:程序博客网 时间:2024/06/05 08:52
动态函数调用实现下列操作,输入2个数以及操作符计算结果。
‘@‘ 求最大公约数 ‘ $‘求最小公倍数
‘-‘求差 ‘+‘ 求和 等等
###
#import <Foundation/Foundation.h>typedef int(*PFUN)(int,int);//定义函数指针变量类型typedef struct nameFunctionPair{ char name; PFUN p_fun;}NameFunctionPair;//定义结构体存放函数名和函数指针int gongyueshu(int x,int y){//求最大公约数的函数 while (x!=y) { if (x>y) { x=x-y; }else { y=y-x; } } return x;};int gongbeishu(int x,int y){//求最小公倍数的函数 int m = gongyueshu(x,y); return x*y/m;};int sum(int x,int y){//求和函数 return x+y;};int jian(int x,int y){//相减函数 return x-y;};NameFunctionPair list[]//函数指针结构体数组={ {'@',gongbeishu}, {'$',gongyueshu}, {'+',sum}, {'-',jian}};PFUN getFunctionByName(char name){//函数,从函数结构体数组得到函数名,返回函数指针 for(int i=0;i<4;i++){ if (list[i].name == name) { return list[i].p_fun; } } printf("Please enter correct function name\n"); return 0;};int getResult(int x,int y,PFUN pfun ){//函数,用回调函数,求出函数指针对应的函数运算之后的结果 if (pfun==0) { return -1; } return pfun(x,y);};int main(int argc, const char * argv[]) { int x=0,y=0; char name='0'; printf("请输入运算:\n"); scanf("%d%c%d",&x,&name,&y);//输入运算 PFUN fun = getFunctionByName(name);//得到函数指针 int result = getResult(x,y,fun );//求出函数结果 printf("%d%c%d=%d\n",x,name,y,result); return 0;}`
0 0
- 回调函数的运用
- 回调函数的理解及运用
- C++回调函数(callback)的运用
- js中回调函数的运用
- 定时器的简单实现即回调函数的运用
- C++ 对回调函数的理解与运用
- Spine的回调函数,以及简单运用
- java回调函数的作用以及运用
- OC & C++运用回调函数
- OC & C++运用回调函数
- 什么是回调函数?如何运用?
- 关于回调函数在Java中的运用(1)
- js回调函数在项目中的运用
- 回调函数的学习
- 回调函数的意义
- 回调函数的介绍
- 回调函数的例子
- 回调函数的例子
- 在开发的时候脚本语言用的最多了,写点JavaScript的一写需要注意的地方 后续
- Pinyin4j入门教程---识别中文
- .NET MVC 图片上传
- 深度定制 UIButton 按钮
- cg profiles,什么是profiles,以及如何使用CGC编译Cg语言
- 回调函数的运用
- 关于NSAutoReleasePool的理解
- 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题 和Could not retrieve mirrorlist
- shell函数返回字符串
- push_back使用方法
- sqlserver 存储过程调试
- jquery 消除冒泡实现选项框效果
- AOSP---JDK版本管理
- 批量删除数据库的SQL语句