作者HowLeeHi (处处留心皆正妹)
看板C_and_CPP
标题[问题] 请问指标的宣告...
时间Wed Dec 21 14:07:30 2016
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
Hi, all
在网路上看到一个特殊的指标宣告
int (*p())[4];
但我没办法理解是什麽意思
原本是想说宣告一个function pointer阵列,有4个元素
每个元素可以去指向其它function
但code写起来又没办法编译
看不懂这个宣告是什麽意思...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.95.27
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1482300457.A.A7B.html
※ 编辑: HowLeeHi (1.164.95.27), 12/21/2016 14:08:06
1F:→ stupid0319: 4个fun pointer? int fun(void); p[0]=fun;是这样吗? 12/21 14:23
2F:推 Sidney0503: 不是喔 如果是function pointer要这样宣告 12/21 14:29
3F:→ Sidney0503: int((*p)()) ; 12/21 14:30
4F:→ Sidney0503: int (*p())[4]; 是function的宣告 12/21 14:31
5F:→ Sidney0503: 可在里面宣告int array[4]; 然後回传 &array 12/21 14:35
6F:→ Sidney0503: 抱歉这样说是错的 拿到array会不能使用wwwww 12/21 14:37
7F:推 cutekid: function 里面回传一个在 data segment 或 heap 的位址 12/21 14:57
8F:→ cutekid: 然後用 int(*)[4] 来解读这个位址 12/21 14:57
9F:推 boss0405: 此function回传一个指标,指标类型为大小为4的int阵列 12/21 17:38
10F:推 boss0405: 不过那个4顶多是让写code的人知道回传类型,因为回传是p 12/21 17:41
11F:→ boss0405: ointer所以也不会知道阵列大小 12/21 17:41
12F:推 salavida: #1EkLIycp 可以看一下这篇 12/21 19:37
13F:→ kilva: int (*p[4])(); 4个函式指标阵列的宣告 12/21 22:45