你这个问题其实就是一个按下同一个键,根据不同的按下次数选择不同的函数的问题是吧?
如果是这样的话,你可以不仅用key的值标记,同时加上用另一个记录该键按下次数的值进行标记,
比如说你设置n作为按下次数的标记位,初始化为0.你每按下一次,n就加一。具体调用函数的时候只需要对n的值进行判断就可以了。
对于嵌套也完全可以这样处理的。
这个是一个状态逻辑的问题...
刚开始编程时,最好先画副状态图,即先确定哪个状态会响应哪个按键,然后再根据状态分别处理各种按键...
如你举例说明的..
你应该存在三个状态,假设为1.2,3及两个按键1,2
初始状态为1,按键1后就会进入2态,如果这个时候再按键2就进入三态,进行相应的处理逻辑..
所在你要在每个状态对所有按键处理情况都要分析清楚..
实现你说的功能的方法有很多,举一个例子供你参考
比如在 函数1中加一个语句 a++;然后在if的判断条件里多加一个判断a值的语句,这样来区分同样按下1执行不同的函数,参考代码如下:
int a=1;
void mian()
{
while(1)
{
key=按键函数;
if((key==1)&&(a==1))
{
函数1;
a++;
}
if((key==1)&&(a==2))
{
函数2;
a++;
}
if((key==1)&&(a==3))
{
函数3;
a++;
}
}
依次类推。
设置标志位就可以了,每次按下1后更新标志位,然后根据标志位来判断所希望执行的函数n。