看板 Programming 關於我們 聯絡資訊
※ 引述《tiwei (∫期望dt=ivy + C)》之銘言: : char *(*(*x)(void))[]; : what does the above statement declare? : 想請教一下 最後那個[]代表的是什麼意思 : 還有要怎麼用typedef把這個東西拆解 : 如果方便的話..可以舉個例子寫一點code讓我參考一下 : 研究了很久還是不太懂阿.. : 感謝 推文有說到答案了 (好像正確吧?) 我也對這種很苦手. 理解這種 function ptr declaration 的方法有 一個叫 Right-Left-Rule. 用你的例子做一次示範: char *(*(*x)(void))[] x 是 char *(*(*x)(void))[] ptr to (往右找, 但踫到關括號, 所以往左找) char *(*(*x)(void))[] function that takes no argument... (跳出一層括號, 往右找) char *(*(*x)(void))[] ... and return ptr to (然後往左找) char *(*(*x)(void))[] .. to array of... (跳出一層, 往右找) char *(*(*x)(void))[] pointer to... (往左找) char *(*(*x)(void))[] char (繼續往左) 重新說一次, 就是 x 是 一個 function ptr, 指向的 function 是 沒有 argument 及 return ptr to (array of char ptr) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (01/26 16:02)
okd:這東東真的很難看懂 推一個140.123.111.158 01/26 16:19
freesamael:大推解說118.168.115.217 01/27 00:11
softwind:就是模仿compiler分析關係 118.166.118.64 01/27 01:53
sunbig:不推不行 太贊的講講了220.135.250.104 01/27 14:23
tiwei:大感謝! 160.39.43.40 01/27 16:09
vity:非常清楚! 59.112.128.73 01/27 18:27