这条C语言语句是什么意思?

What does this C language statement mean?

int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)

我找到这段代码,不知道如何理解它。我认为EVP_MD_meth_get_cleanup是函数指针类型的名称,returnint,但不理解参数部分。

EVP_MD_meth_get_cleanup 是一个函数,它将 const EVP_MD *md 作为参数,而 returns 是一个函数指针 。该函数指针采用 EVP_MD_CTX *ctx 和 returns 一个 int.

没有比例子更好的了:

int somefunction(EVP_MD_CTX *ctx) {
    stuff();
}

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