新手问:有没可以替换的方法,关于switch-------case

2020-01-20 19:11发布

switch(flg)
{
    case flg1:
    {
        function1();
        break;
    }
    case flg2:
    {
        function2();
        break;
    }
  case flg3:
    {
        function3();
        break;
    }
    :
    :
    :
  case flgN:
    {
        functionN();
        break;
    }
    default:break;

}
请问这种情况,当flgN数目很多时,有没其他方法代替?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
hemjidn
1楼-- · 2020-01-20 22:58
 精彩回答 2  元偷偷看……
hemjidn
2楼-- · 2020-01-21 01:23
好象叫数组指针。
ghost2
3楼-- · 2020-01-21 02:57
函数指针数组
mystudy
4楼-- · 2020-01-21 04:26
好像跟指针函数,散转表之类相像的,但具体怎么实现我也忘记了,还望高手们指点迷真。。。。
shark
5楼-- · 2020-01-21 10:00
struct {
   int   flag;
   void (*pfn)();
} fs[]={
   {1,fun1},
   {2,fun2},
   ...
};
程序:

void RunByFlag(int flag)
{
   int i;
   for(i=0;i<sizeof(fs)/sizeof(fs[0]);++i)
   {
      if (fs.flag == flag)
      {
          fs.pfn();
          break;
       }
   }
}
hemjidn
6楼-- · 2020-01-21 15:15
 精彩回答 2  元偷偷看……

一周热门 更多>