3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
正如其他人所指出的那樣,cdecl是這項(xiàng)工作的正確工具。
如果您想在沒有cdecl幫助的情況下理解這種聲明,請嘗試從內(nèi)到外和從右到左閱讀
從列表中取一個(gè)隨機(jī)示例從 X開始,這是聲明/定義的標(biāo)識符(以及最里面的標(biāo)識符):char (*(*X[3])())[5];
char (*(*X[3])())[5];
^
X是
X[3]
^^^
X是 3的數(shù)組
(*X[3])
^ /* the parenthesis group the sub-expression */
X是一個(gè)3 指針的數(shù)組
(*X[3])()
^^
X是一個(gè)3個(gè)指針的數(shù)組,用于 接受未指定(但固定)數(shù)量的參數(shù)
(*(*X[3])())
^ /* more grouping parenthesis */
X是一個(gè)由3個(gè)指針組成的數(shù)組,用于接受未指定(但固定)數(shù)量的參數(shù) 并返回指針
(*(*X[3])())[5]
^^^
X是一個(gè)3個(gè)指針的數(shù)組,用于接受未指定(但固定)數(shù)量的參數(shù)并返回指向 5的數(shù)組的指針
char (*(*X[3])())[5];
^^^^ ^
X是一個(gè)3個(gè)指針的數(shù)組,用于接受未指定(但固定)數(shù)量的參數(shù)并返回指向5個(gè) char 數(shù)組的指針。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
聽起來像是cdecl工具的工作:
cdecl> explain char (*(*f())[])();
declare f as function returning pointer to array of pointer to function returning char
我四處尋找該工具的官方主頁,但找不到一個(gè)看似真實(shí)的主頁。在Linux中,您通常可以期望您選擇的分發(fā)包含該工具,因此我只是安裝它以生成上述示例。
- 3 回答
- 0 關(guān)注
- 420 瀏覽
添加回答
舉報(bào)