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

项目中要使用的函数有:

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 效果一样!但是,这个“函数指针数组”函数,调用起来,看起来是不是很爽呢!

转载于:https://www.cnblogs.com/ylshu/archive/2010/03/19/1689811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值