函数指针数组在项目中的初步应用

项目中要使用的函数有:

switch(Pointers)

{

              case 0:MenuScan(); break;          //主界面
              case 1:SetData(); break;             //参数设置界面
              case 2:Ventilation();break;           //换气
              case 3:Samplfunc();break;           //采样计算函数
              case 4:Calibration();break;           //进入标定选择函数
              case 5:Correction_Time();break;   //时间校正
              case 6:Calibration_Flux();break;    //流量标定
              case 7:Data_Manage();break;        //数据查询
              case 8:Results();break;

}

开始的时候,使用上述方法_也就是switch() case:...的方法,感觉不爽!

今天初步学习下有关“函数指针数组”的概念和用法,便将上面的程序段,修改如下:

 先定义一个“函数指针数组”函数:

void (*function[9])(void);

 

在主函数中,给该函数指针数组元素赋初值:

 function[0]=MenuScan;
 function[1]=SetData;
 function[2]=Ventilation;
 function[3]=Samplfunc;
 function[4]=Calibration;
 function[5]=Correction_Time;
 function[6]=Calibration_Flux;
 function[7]=Data_Manage;
function[8]=Results;

然后,在主函数的while()中直接调用:

           (*function[Pointers])();

编译(CVAVRCode),上硬件,完全与switch() case 效果一样!但是,这个“函数指针数组”函数,调用起来,看起来是不是很爽呢!

posted @ 2010-03-19 14:23  东湖听雨  阅读(429)  评论(0编辑  收藏  举报