半天的测试,终于找到一种写菜单的简单方法(不用表链库)

2020-02-01 16:31发布

在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)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
39条回答
iloveh
1楼-- · 2020-02-02 17:20
一个链表?
flagyan
2楼-- · 2020-02-02 23:02
 精彩回答 2  元偷偷看……
hzr0071
3楼-- · 2020-02-03 02:51
只是一种方法,这样写不会占用太多内存,只用一个*s作为容器。
不用调用大量的函数库。单片机中简单的菜单也不用动态内存,毕竟实时才是单片机的王道。
如果动态内存可以用类似fat的储存方式,进行扇区标记。
jack_yu
4楼-- · 2020-02-03 05:05
mark!
wenfeiexe
5楼-- · 2020-02-03 08:47
MARK
bluelool
6楼-- · 2020-02-03 10:54
mark

一周热门 更多>