Re: [問題] 關於function pointer
※ 引述《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
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):