有个液晶的宏定义,看不明白,想请傻孩子解释下~~
最近在研究一个菜单层序,看了一个PDF,一个占用内存极少的菜单系统的实现;里面有段代码,读不明白;#define MenuWhat(n) {(U8 **)n,(sizeof(n)/sizeof(U8 *)),0}
//-----------------------------------------------------
//Bar型菜单的数据结构
struct Menu
{
// U8 _CONST_ **Text; //指向显示内容数组的指针
U8 **Text; //指向显示内容数组的指针
U8 TextNum; //项个数
void* (*Action)();//对应的执行函数
};
//图标层
_CONST_ struct Menu IcoMenu[] =
{
MenuWhat(TopItemCN),//该功能是用来显示语言的,在英语和汉语之间的切换
MenuWhat(TopItemEN),
};
//---------------------------------------------------
//各个菜单的资源
//命名方式是:
//---------------------------------------------------
//顶层菜单
U8 * _CONST_ TopItemCN[]=
{
{"功能"},
{"参数"},
{"测量"},
{"语言"},
{"测试"},
};
U8 * _CONST_ TopItemEN[]=
{
{"Function"},
{"Parameter"},
{"Measure"},
{"Language"},
{"Test"},
}; 这个宏定义是什么意思?#define MenuWhat(n) {(U8 **)n,(sizeof(n)/sizeof(U8 *)),0} ; 还有就是这个结构体:
struct Menu
{
// U8 _CONST_ **Text; //指向显示内容数组的指针
U8 **Text; //指向显示内容数组的指针
U8 TextNum; //项个数
void* (*Action)();//对应的执行函数
};
void* (*Action)();是不是定义了一个函数指针,函数的参数无,函数的返回值是 一个空指针;
如果是的话,为什么在里要定义为一个空指针呢?
页:
[1]