「C與指針心得」23.函數指針-轉移表

轉移表

用途:

用函數指針的形式來替換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從數組中選擇正確的函數指針,而函數調用操作符將執行這個函數

「C與指針心得」23.函數指針-轉移表


分享到:


相關文章: