函数声明返回另一个函数的指针

spa*_*ing 2 c pointers

(对不起,这是一个示例测验,不能使用typedef:P)我正在尝试为以下函数编写声明:

功能:

接受指向函数的指针接受指向int的指针并返回指向int的指针.

返回指向函数的指针接受int并返回int.

这是我的代码:

int (* sigal(int *(*f)(int *)))(int);
Run Code Online (Sandbox Code Playgroud)

但是,这是一个语法错误.写它的正确方法是什么?


编辑:

错误似乎应该不存在f.我试过我的原始代码和

int (* sigal(int *(*)(int *)))(int);

http://www.cdecl.org/上.后者通过了.

有什么问题的解释?


更新:

正如2501所说,错误似乎是解析器的味道.

250*_*501 5

写这个的正确方法是使用typedef:

typedef int*(*fp)(int*);
typedef int(*fi)(int);

fi function(fp p);
Run Code Online (Sandbox Code Playgroud)

没有typedef写这个的正确方法是:

int ( *( function( int*(*p)(int*) ) ) )(int);
Run Code Online (Sandbox Code Playgroud)