打印
[C语言]

关于菜单的扫描,有什么好的算法吗?

[复制链接]
1333|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2017-7-27 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如我有40个菜单,每个菜单对应不同的显示,那么主函数中的扫描必然是这个样子的
 switch(CurMenu.iMenuID)
        {
                case        1:
                        break;
                case  2:
                        break;
                case        3:
                        break;
                case  4:
                        break;
        。。。。。
               
        }
这样顺序的查找应该是比较浪费时间的,那么有没有一个好的算法,可以提高这个效率呢?如果对应多级菜单,那就更痛苦了。

相关帖子

沙发
宇容创行| | 2017-7-27 15:28 | 只看该作者
40 又不多,有400了,再考虑效率问题

使用特权

评论回复
板凳
xyz549040622|  楼主 | 2017-7-27 15:33 | 只看该作者
宇容创行 发表于 2017-7-27 15:28
40 又不多,有400了,再考虑效率问题

我现在想到的好办法是,建立一个40的数字,按顺序存放不同显示函数指针,根据偏移值来指向不同的显示函数。可是这样又增大了占用的内存空间。

使用特权

评论回复
地板
guojin0273| | 2017-7-27 16:03 | 只看该作者
xyz549040622 发表于 2017-7-27 15:33
我现在想到的好办法是,建立一个40的数字,按顺序存放不同显示函数指针,根据偏移值来指向不同的显示函数 ...

只是看起来多,其实你查看一下ASM,优化成了你想用的方法

使用特权

评论回复
5
msblast| | 2017-7-27 17:05 | 只看该作者
xyz549040622 发表于 2017-7-27 15:33
我现在想到的好办法是,建立一个40的数字,按顺序存放不同显示函数指针,根据偏移值来指向不同的显示函数 ...

const

使用特权

评论回复
6
fengfeng的恒| | 2017-7-27 18:16 | 只看该作者
把函数指针数组定义为常量,直接调用即可。

使用特权

评论回复
7
xxzouzhichao| | 2017-7-29 15:26 | 只看该作者
menu_creator_tools_share.rar (40.16 KB)
menu_creator_v1.1用户指南.pdf (362.39 KB)

使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
xyz549040622 + 10 很给力!
8
xyz549040622|  楼主 | 2017-7-30 11:22 | 只看该作者

看看你的这个架构怎么样!

使用特权

评论回复
9
xxzouzhichao| | 2017-7-30 15:28 | 只看该作者
xyz549040622 发表于 2017-7-30 11:22
看看你的这个架构怎么样!

还算不错的架构,维护菜单比较省力

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2782

主题

19267

帖子

104

粉丝