阅读:4323回复:27
swich可以嵌套使用吗
我要在键盘处理程序中使用swith/case语句而且想嵌套。也就是说:
我要在中断服务中处理键盘,有几个功能键,用swith/case 处理。 而进入每个第一层的case后,又需要读子功能键完成子功能,子功能处理程序也需要读键多次(如数字键)设定完成后按enter键保存退出。 可以吗? |
|
|
沙发#
发布于:2005-02-22 12:09
结构如图
|
|
|
板凳#
发布于:2005-02-22 13:12
绝对可以。
|
|
|
地板#
发布于:2005-02-22 13:30
那是不是还向单层switch/case 一样对应处用break跳出?
|
|
|
地下室#
发布于:2005-02-22 16:29
是的~
|
|
5楼#
发布于:2005-02-28 10:25
绝对可以。 可以是可以,但楼主的程序中出现这种情况,说明程序的结构不是很清晰呀,应该适当的优化程序,避免这种类型的钳套出现,因为这种程序可读性差,而且容易出错,估计编译后生成的代码量也不小哦。 :mad: |
|
6楼#
发布于:2005-02-28 15:21
最好另写函数处理
|
|
|
7楼#
发布于:2005-02-28 20:21
最好另写函数处理 那,像我这种程序结构该如何编写那。我快头疼死了! |
|
|
8楼#
发布于:2005-03-01 08:28
typedef struct
{unsigned char KeySateIndex;//当前索引号 unsigned char KeyDnState;//按下”A“键时转向的状态索引号 unsigned char KeyUpState;//按下”B“键时转向的状态索引号 unsigned char KeyReState;//按下”C“键时转向的状态索引号 unsigned char KeyCrState;//按下”D“键时转向的状态索引号 void (*CurrentOperate)();//当前状态应该执行的功能操作 }KbdTabStruct; KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]= { {0,100,100,100,100,(*Run0)}, {1,2,3,0,4,(*Run1)}, {2,3,1,0,5,(*Run2)}, {3,1,2,0,6,(*Run3)}, {4,8,8,1,9,(*Run4)}, {5,10,11,2,12,(*Run5)} } void KeyFunc(void) { switch(KeyValue) { case 10://向下键A,找出新的菜单编号 {number=0; if(KeyTab[KeyFuncIndex].KeyUpState!=100) KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState; break; } case 11://向上键B,找出新的菜单编号 {number=0; if(KeyTab[KeyFuncIndex].KeyDnState!=100) KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState; break; } case 12://取消键C,找出新的菜单编号 {number=0; CLR=1; INTC=1; if(KeyTab[KeyFuncIndex].KeyReState!=100) KeyFuncIndex=KeyTab[KeyFuncIndex].KeyReState; break; } } 把每级菜单的功能都由索引号结尾的run*编出来,每级菜单的上下级都编在结构体里,清晰 |
|
|
9楼#
发布于:2005-03-01 09:45
很好,我要向你学习!
|
|
|
10楼#
发布于:2005-03-03 14:43
我要在键盘处理程序中使用swith/case语句而且想嵌套。也就是说: 结构太滥。。。 |
|
11楼#
发布于:2005-03-03 15:07
[quote]我要在键盘处理程序中使用swith/case语句而且想嵌套。也就是说: 结构太滥。。。 [/quote] 啥结构跟哈那。。。。。呵呵。。 :D |
|
|
12楼#
发布于:2005-03-03 16:06
按键只改变菜单编号,其他的什么都不做
执行命令靠菜单编号来case :D |
|
13楼#
发布于:2005-03-03 16:10
哈....你的case好大哦!
|
|
|
14楼#
发布于:2005-03-03 16:32
哈....你的case好大哦! 小程序这么做。。。 大程序 用链表。。。 :D |
|
15楼#
发布于:2005-03-03 16:42
[quote]哈....你的case好大哦! 小程序这么做。。。 大程序 用链表。。。 :D [/quote] 嗯,,,行家。。。。 :D |
|
|
16楼#
发布于:2005-03-03 16:48
[quote]哈....你的case好大哦! 小程序这么做。。。 大程序 用链表。。。 :D [/quote] 定义n个变量....嵌套 :P |
|
|
17楼#
发布于:2005-03-03 17:07
[quote][quote]哈....你的case好大哦! 小程序这么做。。。 大程序 用链表。。。 :D [/quote] 定义n个变量....嵌套 :P [/quote] 哥哥 离了嵌套你就不会 编了。。。 :D 做成菜单链表。。。 加分隔符和功能码。。。 :D |
|
18楼#
发布于:2005-03-03 17:13
是呀....俺是汇编....没有链表!遗憾 ...没用过c :P
|
|
|
19楼#
发布于:2005-03-04 08:26
偶没学过链表,只是看过一点,至于用法,嘿嘿!。。。
|
|
|
上一页
下一页