C 多重嵌套 if 是否有简单处理方法

2020-01-15 19:24发布

本帖最后由 ajfan 于 2017-7-8 18:23 编辑

请教大牛关于C编程思路的

通过uart 接收到的6位字符串(前5位用于功能定义,第6位为参数,非固定),不同的组合定义了不同的指向功能,用普通的if 语句 先判断第一位,然后在判断语句里再嵌套5个if 确定最终的字符串(然后根据这个字符串指向对应的功能模块,第6位作为参数也一起送过去),问题来了,除了5重嵌套 if 语句外,是否有其他的方式可以进行优化的指向?用switch并将所有的组合放在case里将会有32 个选项,不怎么想用。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
chxaitz
1楼-- · 2020-01-17 16:07
典型的状态机应用需求。
xyz543
2楼-- · 2020-01-17 17:03
 精彩回答 2  元偷偷看……
zyqcome
3楼-- · 2020-01-17 22:15
本帖最后由 zyqcome 于 2017-7-9 22:22 编辑
jiangxingyuan 发表于 2017-7-9 09:32
指针函数数组,
void (*fun[][][][])()={
                                  f1,


见过这种用法,当时给我的感受是,我有没有学过c语言,有这么爽的跳转

-----添加
但没有这么多层

lswood
4楼-- · 2020-01-18 01:21
看来楼主没有学过编译原理
WM_CH
5楼-- · 2020-01-18 05:14
lswood 发表于 2017-7-10 09:26
看来楼主没有学过编译原理

还望前辈讲解一下
xiaomu
6楼-- · 2020-01-18 11:04
jiangxingyuan 发表于 2017-7-9 09:32
指针函数数组,
void (*fun[][][][])()={
                                  f1,

好方法,赞一个!

一周热门 更多>