搜索论坛发现没有使用这种方式的多级菜单,为啥啊?
程序代码:/* Note:Your choice is C IDE */
#include "stdio.h"
unsigned char tt,key;
void (*kfp)();
void menuf1()
{ printf("(选项1) 被选中\n\n\n");
printf("选项2\n");
printf("nop\n\n");}
void menuf2()
{ printf("选项1 \n\n\n");
printf("(选项2) 被选中\n");
printf("nop\n\n");}
void menuf3()
{
printf("\n\n\n执行动作2\n\n");
}
void menuf4()
{
printf("\n\n\n执行动作1\n\n");
}
typedef struct
{ unsigned char biaohao;
unsigned char up; //输入1时对应up选择的标号
unsigned char down; //输入2时对应down选择的标号
unsigned char ok; //输入3时对应ok选择的标号
unsigned char back; //返回主菜单
void (*fun)();
} Menustruct;
Menustruct Menu[4]={
{0,1,1,3,0,*menuf1},{1,0,0,2,0,*menuf2},{2,0,0,0,0,*menuf3},{2,0,0,0,0,*menuf4}
};
unsigned char tt;
void main()
{key=Menu[0].biaohao; //初始化显示
kfp=Menu[key].fun;
(*kfp)();
while(1){
scanf("%d",&tt); //输入1到4
switch(tt){
case 1: key=Menu[key].up; break;
case 2: key=Menu[key].down; break;
case 3: key=Menu[key].ok; break;
case 4: key=Menu[key].back; break;
return ;
break;
}
kfp=Menu[key].fun;
(*kfp)();
}}








