【发布时间】:2014-11-25 08:47:37
【问题描述】:
为了练习,我正在尝试:
将fubar 声明为一个指向函数的指针,该函数接受一个指向char 的指针并返回一个指向由24 个元素组成的数组的指针,其中每个元素都是指向struct foo 的指针。
我的逻辑是:
-fubar 是一个指向采用 char 指针的函数的指针:
(*fubar)(char*)
-...返回一个指向 24 个元素的数组的指针,其中每个元素都是一个 struct foo:
(struct foo *)(*fubar)(char*)[24]
我的逻辑对吗?
【问题讨论】:
-
没有。括号有很大的不同。它应该是
struct foo* (*fubar)(char*)[24],这才是有效的语法。 -
你知道cdecl (cdecl.org)吗?
-
是的,我知道 cdecl,但它说语法错误,但我不知道为什么。
-
(struct foo *)是一种类型转换,在这种情况下没有任何意义。您可以尝试删除括号:cdecl.ridiculousfish.com/?q=struct+foo+*%28*fubar%29%28char*%29[24] 然后它就不再是语法错误了。 -
@mch 啊啊啊我明白了!感谢您添加该评论,我想我终于更了解它了
标签: c pointers function-pointers