函数指针数组在项目中的初步应用
项目中要使用的函数有:
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 效果一样!但是,这个“函数指针数组”函数,调用起来,看起来是不是很爽呢!