欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

C 轉(zhuǎn)移表/轉(zhuǎn)換表的深入分析

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

個人實現(xiàn)例子:

復制代碼 代碼如下:

#include <stdio.h>
#include <string.h>
#define M 4
int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
int div(int a, int b);
int (*oper_func[])(int, int) = {
 add, sub, mul, div
};
char oper_sequence[M][10] = {
 "add", "sub", "mul", "div"
};
int main()
{
 char oper[10];
 int seq;
 int a,b;
 int result;
 int i;
 printf("Operator:");
 scanf("%s",oper);
 printf("a:");
 scanf("%d",&a);
 printf("b:");
 scanf("%d",&b);
 for(i=0; i<M; i++)
 {
  if(strncmp(oper_sequence[i], oper, 3) == 0)
   seq = i;
 }
 result = oper_func[seq](a, b);
 printf("result is %d/n", result);
 return 0;
}
int add(int a, int b)
{
 return a+b;
}
int sub(int a, int b)
{
 return a-b;
}
int mul(int a, int b)
{
 return a*b;
}
int div(int a, int b)
{
 return a/b;
}

<<C和指針>>原文:
轉(zhuǎn)換表(jump table)
轉(zhuǎn)移表最好用個例子來解釋。下面的代碼段取自一個程序,它用于實現(xiàn)一個袖珍式計算器。程序的其他部分已經(jīng)讀入兩個數(shù)(op1和op2)和一個操作符(oper)。下面的代碼對操作符進行測試,最后決定調(diào)用哪個函數(shù)。
switch(oper)
{
  case ADD:   result=add(op1,op2);break;
  case SUB:    result=sub(op1,op2);break;
  case MUL:    result=mul(op1,op2);break;
  case DIV:     result=div(op1,op2);break;
  ......
}
對于一個新奇的具有上百個操作符的計算器,這條switch語句將會非常之長。為什么要調(diào)用函數(shù)來執(zhí)行這些操作呢?把具體操作和選擇操作的代碼分開是一種 良好的設計方案。更為復雜的操作將肯定以獨立的函數(shù)來實現(xiàn),因為它們的長度可能很長。但即使是簡單的操作也可能具有副作用,例如保存一個常量值用于以后的 操作。
為了使用switch語句,表示操作符的代碼必須是整數(shù)。如果它們是從零開始連續(xù)的整數(shù),我們可以使用轉(zhuǎn)換表來實現(xiàn)相同的任務。轉(zhuǎn)換表就是一個函數(shù)指針數(shù)組。
創(chuàng)建一個轉(zhuǎn)換表需要兩個步驟。首先,聲明并初始化一個函數(shù)指針數(shù)組。唯一需要留心之處就是確保這些函數(shù)的原型出現(xiàn)在這個數(shù)組的聲明之前。
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,...};
初始化列表中各個函數(shù)名的正確順序取決于程序中用于表示每個操作符的整型代碼。這個例子假定ADD是0,SUB是1,MUL是2,接下去以此類推。
第二個步驟是用下面這條語句替換前面整條switch語句!
result=oper_func[oper](op1,op2);
oper從數(shù)組中選擇正確的函數(shù)指針,而函數(shù)調(diào)用操作符將執(zhí)行這個函數(shù)。

上一篇:c語言字符數(shù)組與字符串的使用詳解

欄    目:C語言

下一篇:深入解析C中的數(shù)值與

本文標題:C 轉(zhuǎn)移表/轉(zhuǎn)換表的深入分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4454.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有