[C语言] 关于菜单的扫描,有什么好的算法吗?

[复制链接]
1573|9
 楼主| xyz549040622 发表于 2017-7-27 15:25 | 显示全部楼层 |阅读模式
比如我有40个菜单,每个菜单对应不同的显示,那么主函数中的扫描必然是这个样子的
  1. switch(CurMenu.iMenuID)
  2.         {
  3.                 case        1:
  4.                         break;
  5.                 case  2:
  6.                         break;
  7.                 case        3:
  8.                         break;
  9.                 case  4:
  10.                         break;
  11.         。。。。。
  12.                
  13.         }
这样顺序的查找应该是比较浪费时间的,那么有没有一个好的算法,可以提高这个效率呢?如果对应多级菜单,那就更痛苦了。
宇容创行 发表于 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,优化成了你想用的方法
msblast 发表于 2017-7-27 17:05 | 显示全部楼层
xyz549040622 发表于 2017-7-27 15:33
我现在想到的好办法是,建立一个40的数字,按顺序存放不同显示函数指针,根据偏移值来指向不同的显示函数 ...

const
fengfeng的恒 发表于 2017-7-27 18:16 | 显示全部楼层
把函数指针数组定义为常量,直接调用即可。
xxzouzhichao 发表于 2017-7-29 15:26 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +10 收起 理由
xyz549040622 + 10 很给力!

查看全部评分

 楼主| xyz549040622 发表于 2017-7-30 11:22 | 显示全部楼层

看看你的这个架构怎么样!
xxzouzhichao 发表于 2017-7-30 15:28 | 显示全部楼层
xyz549040622 发表于 2017-7-30 11:22
看看你的这个架构怎么样!

还算不错的架构,维护菜单比较省力
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

2841

主题

19330

帖子

110

粉丝
快速回复 在线客服 返回列表 返回顶部