这个表达式是什么意思:void*(*fct)(void*(*)(void*),void*)?

这个表达式是什么意思:void*(*fct)(void*(*)(void*),void*)?,c,pthreads,C,Pthreads,我知道 void *(*myFuncName)(void*) 是一个函数指针,它接受并返回void* 这是一个带2个参数的指针吗? 一个void指针返回该类型的另一个函数void*和一个void*? 我只是猜测….我的编译器都同意。这是一个语法错误。闭合圆括号比开放圆括号多 名为x的函数指针返回void*并接受两个类型为void*的参数,如下所示: void *(*x)(void *, void *); 将fct声明为指向以下函数的指针 返回一个void* expects的第一个参数是指向

我知道

void *(*myFuncName)(void*)
是一个函数指针,它接受并返回
void*

这是一个带2个参数的指针吗? 一个
void
指针返回该类型的另一个函数
void*
和一个
void*
? 我只是猜测….

我的编译器都同意。这是一个语法错误。闭合圆括号比开放圆括号多

名为
x
的函数指针返回
void*
并接受两个类型为
void*
的参数,如下所示:

void *(*x)(void *, void *);
fct
声明为指向以下函数的指针

  • 返回一个
    void*
  • expects的第一个参数是指向函数的指针类型,该函数需要
    void*
    并返回
    void*
  • 要求其第二个参数的类型为
    void*
    • 向左读:

      myFuncName是一个指针。它是指向什么的指针

      向右读:

      myFuncName是指向一个函数的指针,该函数有两个参数,其中一个是函数指针(有一个
      void*
      参数并返回
      void*
      ,类似于
      myFuncName
      ),另一个是类型
      *void*
      ,返回
      void*
      。函数返回什么

      向左读:

      myFuncName是一个指向函数的指针,该函数接受两个参数(见上文)并返回
      void*

      正如所指出的,只要语法正确,我会告诉你同样的情况

      致意 安德烈亚斯

      fct(1)是指向返回指针(4)的函数(3*)的指针(2)

      (*)函数参数是
      void*(*)(void*)
      void*

      void*(*)(void*)
      指向接受指针参数并返回指针的函数的指针


      void*
      a指针

      显然,它是一个指向函数的指针,它将函数指针作为参数(如果您将所有内容都放在正确的位置)。如果标题中的decl是实际问题,它声明了一个变量
      fct
      ,该变量是指向返回
      void*
      的函数的指针,并带有两个参数:第一个参数是指向返回
      void*
      的函数的指针,第二个参数是
      void*
      参数。假设标题在接下来的几秒钟内没有改变。
      void* (*fct)(void*(*)(void*), void*);  
      
         void* (*fct)(void*(*)(void*), void*)
      // 44444  2111 333333333333333333333333