16,473
社区成员
发帖
与我相关
我的任务
分享
//使用函数指针数组
typedef void * (*caseFnType)(void * p1, void * p2);//参数跟返回值,根据实际情况定
void fnCase1(void * p1, void * p2){....}
void fnCase2(void * p1, void * p2){....}
void fnCase3(void * p1, void * p2){....}
void fnCaseN(void * p1, void * p2){....}
caseFnType fn[]=
{
fnCase1,
fnCase2,
fnCase3,
....
fnCaseN
};
//===================
//原来函数是
void Test(int b)
{
....
switch(b)
{
ase 1:
语句.....
return......;
case 2:
return......;
}
}
//现在函数是
void Test(int b)
{
...
if (b< _countof(fn)) //防止越界
{
fn[b](xxx,xxx,xxx);
}
}