转移表
来源:互联网 发布:外汇行情数据接口 编辑:程序博客网 时间:2024/05/16 10:18
要理解转移表,先要了解函数指针数组。
函数指针数组的说明:函数指针数组
先看代码:
void print_menu(){ printf("********************************************\n"); printf("***** 1.add 2.sub *****\n"); printf("***** 3.mul 4.div *****\n"); printf("***** 5.clean records 0.exit *****\n"); printf("********************************************\n");}int myadd(int num1, int num2){ return num1 + num2;}int mysub(int num1, int num2){ return num1 - num2;}int mymul(int num1, int num2){ return num1 * num2;}int mydiv(int num1, int num2){ if (num2 == 0) { printf("The divisor cannot be 0! \n\n"); return -1; } return num1 / num2;}int main(){ int opt_num = 0; int num1 = 0; int num2 = 0; int res = 0; int(*funp[5])(int, int) = { NULL ,myadd, mysub, mymul, mydiv, };flag: print_menu(); while (1) { printf(">>Choose operation : \n"); scanf("%d", &opt_num); if ((opt_num >= 0) && (opt_num < 6)) { if (opt_num == 0) exit(1); if (opt_num == 5) { system("cls"); goto flag; } printf(">>please enter two operation num : \n"); scanf("%d %d", &num1, &num2); res = funp[opt_num](num1, num2); if (num2 != 0) printf(">>The reslut is : %d\n\n", res); } else { printf("Please enter 0~5 !\n"); } } system("pause"); return 0;}
运行结果:
这是一个使用转移表实现了一个简单的整型数据计算器,计算器有加减乘除运算,清空记录,退出等功能。
在调用加减乘除函数时,用函数指针数组实现调用,具体怎么做呢?我们先定义一个类型相匹配的函数指针数组,然后 将函数的地址 赋给 函数指针数组中 类型与函数相匹配的 元素(元素类型为函数指针) 。于是我们就可以依靠此数组的下标来调用不同函数。
阅读全文
1 0
- 转移表
- 转移表
- 转移表
- 转移表的使用
- 转移表空间步骤
- 数据库表空间转移
- ORACLE 转移表空间
- 使用转移表
- ORACLE 转移表空间
- 转移
- 转移
- 转移
- 转移!!转移!!!
- C 转移表/转换表
- 指针转移表的使用
- 转移表到新的表空间
- 函数指针与转移表
- Oracle 10g表转移表空间
- 【离散数学】2.1什么是命题
- getWriter() has already been called for this response错误
- eclipse安装php报错
- 分布式事物解决方案含视频教程
- Linux下多网卡绑定bonding bond6
- 转移表
- 装载问题--回溯法
- CUDA8.0安装的问题
- 剧本
- ListView具体使用
- Usage of API documented as @since 1.7+ more... (Ctrl+F1
- Java 的介绍
- 理解ARP协议
- 拍摄