感谢您的阅读与点赞!欢迎关注:「大猫玩程序」,查看C语言系列文章
转移表
用途:
用函数指针的形式来替换switch、if/else的方式
示例:
一个计算器实现
double add(double,double);double sub(double,double);double mul(double,double);double div(double,double); switch(oper) { case ADD: result = add(op1mop2); break; case SUB: result = sub(op1mop2); break; case MUL: result = mul(op1mop2); break; case DIV: result = div(op1mop2); break; default: break; }
上述代码改成转移表只需要两个步骤。
首先,声明并初始化一个函数指针数组。
double (*oper_func[])(double,double)={add,sub,mil,div};调用:result = oper_func[oper](op1,op2);
oper从数组中选择正确的函数指针,而函数调用操作符将执行这个函数
![f9c10aa1055679bfb5edbdc8ab1704a1.png](https://i-blog.csdnimg.cn/blog_migrate/2189422360c10b3bebe76d07af3caaa5.jpeg)