Re: [問題] 關於function pointer

看板Programming作者 (Alien)時間14年前 (2010/01/26 16:00), 編輯推噓6(600)
留言6則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《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)

01/26 16:19, , 1F
這東東真的很難看懂 推一個
01/26 16:19, 1F

01/27 00:11, , 2F
大推解說
01/27 00:11, 2F

01/27 01:53, , 3F
就是模仿compiler分析關係
01/27 01:53, 3F

01/27 14:23, , 4F
不推不行 太贊的講講了
01/27 14:23, 4F

01/27 16:09, , 5F
大感謝!
01/27 16:09, 5F

01/27 18:27, , 6F
非常清楚!
01/27 18:27, 6F
文章代碼(AID): #1BNg4ZLb (Programming)
文章代碼(AID): #1BNg4ZLb (Programming)