我是 C 新手,正在嘗試更改函式的回傳型別。問題是,例如,這些作業:
float fct(int)
float *fct(float)
但是當我嘗試將回傳型別更改為:
float (*)[n]fct(int *n)
編譯器發出錯誤:
錯誤:預期識別符號或 '(' 在 ')' 標記之前
即使它告訴我將回傳型別更改為float (*)[n].
如果有人可以解釋問題所在,那就太棒了。
uj5u.com熱心網友回復:
您正在尋找的是:
float (*fct(int *n))[SIZE];
SIZE我應該注意,如果不是常量值,編譯器不會喜歡它。
指標必須有一個識別符號,在這種情況下是fct(int *n),就好像你有類似的東西(*ptr)[SIZE]only ptris fct(int *n)。
編譯器訊息像往常一樣省略了指標識別符號。它只是告訴你應該是什么型別,那就是float (*)[n]. 例如,如果回傳型別是指向int它的指標,則會告訴您回傳型別應該是int*.
現在,換一種說法,nsize 沒有多大意義,因為您在函式中將其用作引數,用作指向int.
您還必須注意不要回傳指向本地(在函式中)宣告的陣列的指標,如果您希望它比函式壽命更長,則需要為其分配記憶體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496467.html
上一篇:OracleSQL用戶定義函式
下一篇:使用JavaScript編輯功能
