回复 7楼 zaixuexi
问问高手
void menu_process(int32 refresh, int32 key_value)
{
int32
(*func)(int32, int32);
int32
flg;
func = (int32 (*)(int32, int32))tree_get();
flg = (*func)(refresh, key_value);
//进入子节点
if(flg == TREE_CHILD) {
func = (int32 (*)(int32, int32))tree_get();
(*func)(REFRESH_INIT, INVALID);
//返回父节点
}else if(flg == TREE_FATHER) {
func = (int32 (*)(int32, int32))tree_get();
(*func)(REFRESH_ALL, INVALID);
}
}
这个函数里面是怎么调用上面的tree_get函数的,tree_get是无参数的,返回值是一个指向函数的指针,这个函数返回值类型是void,参数也是void型,不过这里func = (int32 (*)(int32, int32))tree_get();
却强制转换成 (int32 (*)(int32, int32))这个类型,那转换完后,(*func)(REFRESH_INIT, INVALID);
里面的两个参数怎么应用啊。