簡體   English   中英

函數聲明返回另一個函數的指針

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM