为了账号安全,请及时绑定邮箱和手机立即绑定

下面这些都是函数名,期望有高人指点

下面这些都是函数名,期望有高人指点

C
BIG阳 2023-01-13 18:14:28

typedef struct DESKTOP_API_ENTRY
{  

__s32 (*ptr_dsk_reg_init_para) (void);
__s32 (*ptr_dsk_reg_deinit_para) (void);
__s32 (*ptr_dsk_reg_flush) (void);
void* (*ptr_dsk_reg_get_para_by_app) (reg_app_e eApp);
void* (*ptr_dsk_reg_get_default_para_by_app) (reg_app_e eApp);
__bool (*ptr_dsk_reg_get_app_restore_flag) (reg_app_e eApp);
__s32 (*ptr_dsk_reg_set_app_restore_flag) (reg_app_e eApp, __bool flag);
__s32 (*ptr_dsk_reg_save_cur_play_info) (reg_app_e eApp, __s32 index, char* filename, rat_root_t root_type);  
__s32 (*ptr_dsk_reg_set_app_restore_all) (void);
__s32 (*ptr_dsk_reg_is_aux_in_en) (void);
void (*ptr_dsk_reg_reserved[2]) (void);  
} desktop_api_entry_t;

#define DESKTOP_ENTRY_TBL (0xe1f00000)  
#define DESKTOP_FUNC_ENTRY ((desktop_api_entry_t *)DESKTOP_ENTRY_TBL)

#define dsk_reg_init_para (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_init_para)
#define dsk_reg_deinit_para (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_deinit_para)
#define dsk_reg_flush (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_flush)
#define dsk_reg_get_para_by_app (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_get_para_by_app)
#define dsk_reg_get_default_para_by_app (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_get_default_para_by_app)
#define dsk_reg_get_app_restore_flag (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_get_app_restore_flag)
#define dsk_reg_set_app_restore_flag (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_set_app_restore_flag)
#define dsk_reg_save_cur_play_info (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_save_cur_play_info)
#define dsk_reg_set_app_restore_all (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_set_app_restore_all)
#define dsk_reg_is_aux_in_en (DESKTOP_FUNC_ENTRY->ptr_dsk_reg_is_aux_in_en)

dsk_reg_init_para  
dsk_reg_deinit_para  
dsk_reg_flush  
dsk_reg_get_para_by_app  
dsk_reg_get_default_para_by_app  
dsk_reg_get_app_restore_flag  
dsk_reg_set_app_restore_flag  
dsk_reg_save_cur_play_info  
dsk_reg_set_app_restore_all  
dsk_reg_is_aux_in_en

查看完整描述

1 回答

?
慕的地6264312

TA贡献1590条经验 获得超6个赞

结构体struct DESKTOP_API_ENTRY(及类型desktop_api_entry_t)中所有的成员都是函数指针。

DESKTOP_ENTRY_TBL是一个内存地址,从代码来看这个地址应该是某个desktop_api_entry_t类型的变量的地址。DESKTOP_FUNC_ENTRY用宏定义的方式访问这个变量,用DESKTOP_FUNC_ENTRY->xxx(...)的方式就可以调用函数指针xxx所指的函数。

你列出来的一堆“函数名”的本质都是宏,比如dsk_reg_init_para(...)就是调用DESKTOP_FUNC_ENTRY->ptr_dsk_reg_init_para所指的函数。


查看完整回答
反对 回复 2023-01-15

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信