前言
前面我们讲到了《函数指针》,今天我们看一个编程技巧-函数跳转表。我们先来看如何实现一个简易计算器。
初始版本
让我们实现一个简易计算器,我们首先能想到的方式是什么?switch语句或者if else语句。没错,初学就会想到的两种方式,我们来看看这种实现方式。这里我们选择switch语句,定义一个操作类型,用户选择操作类型与操作类型匹配时,选择对应的处理函数进行处理,calc1.c代码如下:
/*calc1.c*/
#include<stdio.h>
#include<stdlib.h>
/*将操作定义为枚举类型*/
typedef enum
{
OP_ADD = 0,
OP_SUB,
OP_MUL,
OP_DIV,
}OP_TYPE;
/*加减乘除处理函数*/
double ADD(double op1,double op2)
{
return op1+op2;
}
double SUB(double op1,double op2)
{
return op1-op2;
}
double MUL(double op1,double op2)
{
return op1*op2;
}
double DIV(double op1,double op2)
{
return op1/op2;
}
double calc(int op,double op1,double op2)
{
/*使用switch,根据操作类型,选择操作*/
double result = 0;
switch(op)
{
case OP_ADD: