#define MenuWhat(n) {(U8 **)n,(sizeof(n)/sizeof(U8 *))}
const struct Menu IcoMenu[] =
{
MenuWhat(TopItemCN),
MenuWhat(TopItemEN),
};
{
MenuWhat(TopItemCN),
MenuWhat(TopItemEN),
};
======================================================================
MenuWhat(TopItemCN),
MenuWhat(TopItemEN),
可替换为:
{(U8 **)TopItemCN,(sizeof(TopItemCN)/sizeof(U8 *)),0},
{(U8 **)TopItemEN,(sizeof(TopItemEN)/sizeof(U8 *)),0},
进一步替换:
{TopItemCN,5,0},
{TopItemEN,5,0},
根据menu结构体定义,也就是说:
菜单名字现实为TopItemCN以及TopItemEN中的内容,菜单条目为5条,指向的执行函数为空
附1:Bar型菜单的数据结构
==============================================================
//Bar型菜单的数据结构
struct Menu
{
// U8 _CONST_ **Text; //指向显示内容数组的指针
U8 **Text; //指向显示内容数组的指针
U8 TextNum; //项个数
void* (*Action)(); //对应的执行函数
};
==============================================================
(sizeof(n)/sizeof(U8 *)的意思是n中有多少个元素!
附2:一个占用内存极少的菜单系统的实现
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=798580
MenuWhat(TopItemEN),
可替换为:
{(U8 **)TopItemCN,(sizeof(TopItemCN)/sizeof(U8 *)),0},
{(U8 **)TopItemEN,(sizeof(TopItemEN)/sizeof(U8 *)),0},
进一步替换:
{TopItemCN,5,0},
{TopItemEN,5,0},
根据menu结构体定义,也就是说:
菜单名字现实为TopItemCN以及TopItemEN中的内容,菜单条目为5条,指向的执行函数为空
附1:Bar型菜单的数据结构
==============================================================
//Bar型菜单的数据结构
struct Menu
{
// U8 _CONST_ **Text; //指向显示内容数组的指针
U8 **Text; //指向显示内容数组的指针
U8 TextNum; //项个数
void* (*Action)(); //对应的执行函数
};
==============================================================
(sizeof(n)/sizeof(U8 *)的意思是n中有多少个元素!
附2:一个占用内存极少的菜单系统的实现
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=798580