//使用函数指针数组
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);
}
}
本文探讨了如何通过使用函数指针数组来优化函数调用过程,特别是将传统switch-case语句转换为更高效的方法。这种方法适用于需要根据变量选择不同函数执行的场景,能显著提高代码执行效率。
1642

被折叠的 条评论
为什么被折叠?



