(对不起,这是一个示例测验,不能使用typedef:P)我试图为以下函数编写声明:
功能:
接受指向函数的指针,接受指向int的指针并返回指向int的指针。
返回指向函数的指针,接受int并返回int。
这是我的代码:
int (* sigal(int *(*f)(int *)))(int);
但是,这是一个语法错误。什么是正确的写作方式?
编辑:
错误似乎不应该是f
。我尝试了原始代码和
int (* sigal(int *(*)(int *)))(int);
有关问题的解释是什么?
更新:
正如2501所说,错误似乎是解析器的味道。
答案 0 :(得分:5)
正确的写法是使用typedef:
typedef int*(*fp)(int*);
typedef int(*fi)(int);
fi function(fp p);
没有typedef写这个的正确方法是:
int ( *( function( int*(*p)(int*) ) ) )(int);