switch case给定一个操作符,就会选择执行相应的程序,如果选择有很多,就不得不写很多的case,这样子就非常的长,代码臃肿。如一个计算器的代码:
switch(oper){
case add:
...
case sub:
....
case mul:
...
case div:
...
...
下面使用改进方法转移表:
double add(double,double);
double sub(double,double);
double mul(double,double);
double div(double,double);
...
double(*oper_func[])(double,double)={add,sub,mul,div,...};
如果要选择某个函数,就oper_func[add](op1,op2)就可以了;oper_func[*]会自己找到需要使用的函数调用。