gpt4 book ai didi

c - 奇怪的变量类型声明

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:56 26 4
gpt4 key购买 nike

当我查看 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");

我知道:

  • CK_RV 是 unsigned long 的类型定义
  • CK_FUNCTION_LIST_PTR_PTR 是类似 **ck_function_list 的类型定义,其中 ck_function_list 是一个结构
  • rv 是一个变量
  • c_get_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>);

是指向原型(prototype)为的函数的函数指针。

unsigned long func(<param>);

这里的指针是c_get_function_list

关于c - 奇怪的变量类型声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27919872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com