作者adrianshum (Alien)
看板Programming
标题Re: [问题] 关於function pointer
时间Tue Jan 26 16:00:33 2010
※ 引述《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)
1F:推 okd:这东东真的很难看懂 推一个140.123.111.158 01/26 16:19
2F:推 freesamael:大推解说118.168.115.217 01/27 00:11
3F:推 softwind:就是模仿compiler分析关系 118.166.118.64 01/27 01:53
4F:推 sunbig:不推不行 太赞的讲讲了220.135.250.104 01/27 14:23
5F:推 tiwei:大感谢! 160.39.43.40 01/27 16:09
6F:推 vity:非常清楚! 59.112.128.73 01/27 18:27