这个 C 语言语句是啥意思?

Posted

技术标签:

【中文标题】这个 C 语言语句是啥意思?【英文标题】:What does this C language statement mean?这个 C 语言语句是什么意思? 【发布时间】:2022-01-12 08:09:15 【问题描述】:
int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)

我找到了这段代码,不知道怎么理解。我觉得EVP_MD_meth_get_cleanup是函数指针类型的名字,返回int,但是参数部分看不懂。

【问题讨论】:

【参考方案1】:

EVP_MD_meth_get_cleanup 是一个函数,它将const EVP_MD *md 作为参数,返回一个函数指针。该函数指针采用EVP_MD_CTX *ctx 并返回int

没有什么比一个例子更好的了:

int somefunction(EVP_MD_CTX *ctx) 
    stuff();


int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx) 
   return somefunction;

【讨论】:

编译良好godbolt.org/z/a1ajdK5b9

以上是关于这个 C 语言语句是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,FUNC是啥意思?

在C语言中,FUNC是啥意思?

在C语言中,FUNC是啥意思?

c语言switch语句中default是啥意思?

请问下C语言中的,continue是啥的意思的呢?

c语言中case是啥意思