在vc6.0中测试
#include <stdio.h>
struct tst{ //定义菜单结构体
void (*p)();
struct tst *next;
};
void function1() //菜单动作
{
printf("this is function1
");
}
void function2()
{
printf("this is function2
");
}
struct tst trs(void (*function)(void),struct tst *hh) //菜单内容传递函数
{struct tst gg;
gg.next=hh;
gg.p=function;
return (gg);
}
void main()
{struct tst aa;
struct tst *s;
struct tst bb;
aa=trs(&function1,&bb);
bb=trs(&function2,&aa);
s=&aa;
(*s).p();
s=(*s).next;
(*s).p();
s=(*s).next;
(*s).p();
s=(*s).next;
(*s).p();
s=(*s).next;
(*s).p();
}
这是运行结果
(原文件名:菜单测试.png)
不用调用大量的函数库。单片机中简单的菜单也不用动态内存,毕竟实时才是单片机的王道。
如果动态内存可以用类似fat的储存方式,进行扇区标记。
一周热门 更多>