我现在在做键盘的多级菜单,我想求助大家,如果我把结构体菜单放在一个自己定义名字的.h和.c中如何声明结构体。
(类似背景大家可以看一下34楼 http://www.openedv.com/posts/list/0/1803.htm#240596)
高手就略过直接听我说吧,举个类似的例子,具体地说就是我做键盘和液晶的多级菜单,在key.h中定义了下面的结构体
typedef struct
{
u8 current; //当前状态索引号
u8 up; //向上
u8 down; //向下
u8 enter; //确定
u8 exit; //退出
void (*current_operation)(void); //当前状态应该执行的操作
} Menu_table;
那么下面下面的这个结构体是不是应该放在key.c中,
Menu_table table[56]=
{
{ 0, 8, 8, 1,1,(*fun0)}, //0//第一级English
{ 1, 1, 1, 2,1,(*fun1)},// 第二级 主界面
{ 2, 4, 3, 2,1,(*fun2)},// 第三级 功能界面
{ 3, 2, 4, 4,0,(*fun3)},// 第三级
{ 4, 3, 2, 3,0,(*fun4)},// 第三级
{ 5, 3, 7, 6,0,(*fun5)},//
{ 6, 6, 6, 5,0,(*fun6)},//
{ 7, 5, 1, 0,0,(*fun7)},//1
{ 8, 0, 0, 9,9,(*fun8)},//第一层中文
{ 9, 9, 9,10,9,(*fun9)},//第二级 主界面
{10,10,10,10,9,(*fun10)},// 第三级 功能界面
{11, 9,13,12,0,(*fun11)},// 第三级
{12,12,12,11,0,(*fun12)}, // 第三级
{13,11,15,14,0,(*fun13)},
{14,14,14,13,0,(*fun14)},
{15,13, 9, 8,0,(*fun15)},
};
我在key.c和key.h里这么做是因为让主函数看起来不那么繁琐,
那么我在main.c中怎么使用这个结构体函数呢,我怎么在key.h中定义Menu_table table[56]这个结构体?
况且我用的是按键中断,我想直接在中断里使用table[].up table[].down 的功能,那么这个table[]又如何去定义?难道都是归结于这个Menu_table table[56]如何key.h中去定义的吗?请高手给予指点
|