<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>秘訣八</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<meta name="Microsoft Theme" content="mchplog 111, default">
<meta name="Microsoft Border" content="tb, default">
</head>
<body background="_themes/mchplog/mcpcdbkgnd.gif" bgcolor="#3366FF" text="#000000" link="#FF9933" vlink="#CC9900" alink="#FF6600"><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td><!--mstheme--><font face="新細明體">
<p align="center"><font size="6"><strong>
<img src="_derived/tip8.htm_cmp_mchplog110_bnr.gif" width="600" height="60" border="0" alt="秘訣八"></strong></font><br>
<script language="JavaScript"><!--
MSFPhover =
(((navigator.appName == "Netscape") &&
(parseInt(navigator.appVersion) >= 3 )) ||
((navigator.appName == "Microsoft Internet Explorer") &&
(parseInt(navigator.appVersion) >= 4 )));
function MSFPpreload(img)
{
var a=new Image(); a.src=img; return a;
}
// --></script><script language="JavaScript"><!--
if(MSFPhover) { MSFPnav1n=MSFPpreload("_derived/back_cmp_mchplog110_back.gif"); MSFPnav1h=MSFPpreload("_derived/back_cmp_mchplog110_back_a.gif"); }
// --></script><a href="tip7.htm" language="JavaScript" onmouseover="if(MSFPhover) document['MSFPnav1'].src=MSFPnav1h.src" onmouseout="if(MSFPhover) document['MSFPnav1'].src=MSFPnav1n.src"><img src="_derived/back_cmp_mchplog110_back.gif" width="100" height="20" border="0" alt="Back" align="middle" name="MSFPnav1"></a> <script language="JavaScript"><!--
if(MSFPhover) { MSFPnav2n=MSFPpreload("_derived/up_cmp_mchplog110_up.gif"); MSFPnav2h=MSFPpreload("_derived/up_cmp_mchplog110_up_a.gif"); }
// --></script><a href="simpletip.htm" language="JavaScript" onmouseover="if(MSFPhover) document['MSFPnav2'].src=MSFPnav2h.src" onmouseout="if(MSFPhover) document['MSFPnav2'].src=MSFPnav2n.src"><img src="_derived/up_cmp_mchplog110_up.gif" width="100" height="20" border="0" alt="Up" align="middle" name="MSFPnav2"></a></p>
<!--mstheme--></font></td></tr><!--msnavigation--></table><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><!--msnavigation--><td valign="top"><!--mstheme--><font face="新細明體">
<p> </p>
<font FACE="絡遺羹" SIZE="2" COLOR="#000000">
<p>使用C語言table call , 功能類似switch...case語法</font><font face="絡遺羹" color="#000000">。</font><font FACE="細明體" SIZE="2" COLOR="#000000">可省rom空間
, 不知道各位用不用的著!!</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK1(void);</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK2(void);</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK3(void);</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void (*const tab[])(void) = {TASK1,TASK2,<font FACE="絡遺羹" COLOR="#000000"> </font>TASK3};<font FACE="絡遺羹" COLOR="#000000"> </font></p>
<p>char TabNo; /* 當TabNo=0時,執行TASK1(),當TabNo=1時,執行TASK2(),當TabNo=2時,執行TASK3()
*/</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>char TaskNo;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void main(void)</p>
<p>{</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p> TabNo = 0;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p> while(1)</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p> {</p>
<p> (*tab[TabNo])();</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p> TabNo =
TabNo>=2?0:TabNo+1;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>/*****************************************************</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>說明 :</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>******************************************************</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>上面的</font><font FACE="細明體" SIZE="2" COLOR="#000000">(*tab[TabNo])()這段程式跟下面的swutch...</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000">case動作是一模一樣的結果,使用上方程式可省ROM
Size</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
</font><font FACE="絡遺羹" SIZE="2" COLOR="#000000">
<p>switch(TabNo)</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p></font><font FACE="絡遺羹" SIZE="2" COLOR="#000000">{</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p> case 0:</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>
TASK1();</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>
break;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p></font><font FACE="絡遺羹" SIZE="2" COLOR="#000000">
case 1:</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>
TASK2();</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>
break;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p></font><font FACE="絡遺羹" SIZE="2" COLOR="#000000">
case 2:</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>
TASK3();</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p></font><font FACE="絡遺羹" SIZE="2" COLOR="#000000">}</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="絡遺羹" SIZE="2" COLOR="#000000"></p>
<p>****************************************************/</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>}</p>
<p>}</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK1(void)</p>
<p>{</p>
<p> TaskNo=0;</p>
<p>}</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK2(void)</p>
<p>{</p>
<p> TaskNo=1;</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>}</font><font FACE="絡遺羹" COLOR="#000000"> </font><font FACE="細明體" SIZE="2" COLOR="#000000"></p>
<p>void TASK3(void)</p>
<p>{</p>
<p> TaskNo=2;</p>
<p>}</font><font FACE="絡遺羹" COLOR="#000000"> </font>
<!--mstheme--></fon