xwj优化的通用菜单程序

[复制链接]
10576|43
康康同学 发表于 2011-4-23 16:41 | 显示全部楼层
觉得这个菜单结构挺好的,仔细学习后发现问题:
sizeof(*(KeyTab[Menu_tree[Menu_tree_ptr]].Menu_NextTab))这条语句求出结果是1,相当于sizeof(unsigned char),我觉得楼主的本意是求出Menu_NextTab所指向的数组的长度,但Menu_NextTab定义为指针后,即使初始化时把数组名赋值给Menu_NextTab,执行sizeof(指针)后,结果肯定不是数组的长度。请楼主指出怎么来矫正这个错误
zhangjinxing 发表于 2011-4-23 20:58 | 显示全部楼层
sdpz 发表于 2011-4-23 22:18 | 显示全部楼层
刚好要做语音菜单,看到楼主的程序后,深受启发。要认真再看几遍才行。

顺便说说我以往的做法,用函数指针

菜单A()
{
...
下一个菜单 = 菜单B;
return;
...
}

菜单B()
{
...
下一个菜单 =  主菜单
return;
...
}
main()
{
while(1)
{
    (*下一个菜单)();
}
}
lookforjason 发表于 2013-3-23 22:56 | 显示全部楼层
jetbo 发表于 2007-11-22 16:12
精彩,好贴就得顶... if(*(KeyTab[Menu_tree][Menu_tree_ptr]].Menu_NextTab))  这句到底是 ...

应该是这样吧  : if(*(KeyTab[Menu_tree[Menu_tree_ptr]].Menu_NextTab))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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