[英]Strange variable type declaration
當我查看opensc的源代碼,尤其是libpkcs11.c文件時,我發現了一個類型聲明和一個我不理解的函數調用結合在一起:
CK_RV rv, (*c_get_function_list)(CK_FUNCTION_LIST_PTR_PTR);
c_get_function_list = (CK_RV (*)(CK_FUNCTION_LIST_PTR_PTR)) sc_dlsym(mod->handle, "C_GetFunctionList");
我知道:
unsigned long
的typedef **ck_function_list
類的類型**ck_function_list
,其中ck_function_list是結構 但是,如果我拆分第一行並將typedef替換為其原始值,則會得到如下信息:
unsigned long rv;
unsigned long (*c_get_function_list)(**ck_function_list);
那么,第二行中的(** ck_function_list)是什么意思?
預先感謝,羅伯特
unsigned long (*c_get_function_list)(<param>);
是指向原型的函數的函數指針。
unsigned long func(<param>);
此處的指針是c_get_function_list
c_get_function_list
是指向函數的指針。 分配后,您可以像常規函數調用一樣調用指向函數: c_get_function_list( param )
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.