重複の可能性:
複雑な関数宣言を理解するには?
検討:
char (*(*x())[5])()
この表現をどのように分析しますか?
サイズ5の配列を返す関数だと思います。そのメンバーは、入力を受け取らず、charを返す関数へのポインタです。
私は正しいですか?
重複の可能性:
複雑な関数宣言を理解するには?
検討:
char (*(*x())[5])()
この表現をどのように分析しますか?
サイズ5の配列を返す関数だと思います。そのメンバーは、入力を受け取らず、charを返す関数へのポインタです。
私は正しいですか?
「左右の法則」で検索
あなたの場合、それは次のようになります。
x : x is a
x() : function
*x() : returning pointer to
(*x())[5] : a 5-element array of
*(*x())[5] : pointer to
(*(*x())[5])() : function
char (*(*x())[5])() : returning char
最近、Stack Overflow で奇妙な宣言がたくさん見られます。
怠け者のときは、cdecl.orgを使用します。
「char を返す関数へのポインタの配列 5 へのポインタを返す関数として x を宣言します」
そうでない場合は、時計回りのスパイラル ルールがあります。<-それは素晴らしいです