[英]Declaration of function returning a pointer of another function
(很抱歉,這是一個示例測驗,不能使用typedef:P)我正在嘗試為以下函數編寫聲明:
功能:
接受指向函數的指針,接受指向int的指針,並返回指向int的指針。
返回指向函數的指針,該函數接受int並返回int。
這是我的代碼:
int (* sigal(int *(*f)(int *)))(int);
但是,這是一個語法錯誤。 什么是正確的書寫方式?
編輯:
錯誤似乎存在,不應有f
。 我嘗試了我的原始代碼和
int (* sigal(int *(*)(int *)))(int);
在http://www.cdecl.org/上 。 后者過去了。
有什么問題的解釋嗎?
更新:
正如2501所說,該錯誤似乎是解析器的味道。
正確的寫方法是使用typedef:
typedef int*(*fp)(int*);
typedef int(*fi)(int);
fi function(fp p);
沒有typedef的正確寫法是:
int ( *( function( int*(*p)(int*) ) ) )(int);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.