cmd_clear 2020-04-13 08:58 采纳率: 50%
浏览 206
已采纳

如何去除switch case,实现不同任务的调用

问题背景:
嵌入式linux,应用
通过串口获得了 形如 命令+参数 的字符串
我是之前是通过switch case进行功能选择的?有没有什么更好的办法统一起来,有些约定的指令需要带参数,有些不需要。

            switch(location)
            {
                case 0:command_getServerIp(); break;
                case 1:command_setServerIp(); break;
                case 2:command_getIpcIP(); break;
                case 3:command_takephoto(); break;
                case 4:command_standby(); break;
                case 5:command_setStandbytime(); break;
                case 6:command_GPIOCTRL(); break;
                default:
                    rdlen = 0;
                    location = -1;
                    memset(recbuffer,0,sizeof(recbuffer));
                    sendmessage("BAD COMMAND!\n");
            }
            memset(recbuffer,0,sizeof(recbuffer));// cleanup
  • 写回答

2条回答 默认 最新

  • threenewbee 2020-04-13 09:28
    关注

    使用函数指针代替location参数,让调用者把要做什么定义成函数传进来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?