OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7819|回复: 1

按键液晶下的多级菜单结构体的声明与定义

[复制链接]

14

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2013-10-19
在线时间
1 小时
发表于 2014-11-13 15:05:16 | 显示全部楼层 |阅读模式
5金钱
我现在在做键盘的多级菜单,我想求助大家,如果我把结构体菜单放在一个自己定义名字的.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中去定义的吗?请高手给予指点

最佳答案

查看完整内容[请看2#楼]

用extern关键字即可。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-13 15:05:17 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 04:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表