4

假设我在 C 中有这个结构:

/* C */
struct foo {
  char *name;
  int (*links)(foo*);
  /* ... */
};

如果我有x :: Ptr Foo,我如何在不使用的情况下获得FunPtrto ?我想避免这种情况,因为 Haddocks 中关于函数和非函数具有不同地址范围(可能还有大小?)的警告,因此转换可能会在这些平台上导致问题行为。xlinkscastPtrToFunPtr

4

1 回答 1

4

...好吧,那算了。:)

万一其他人想知道这一点,您可以使用 hsc2hs #peek(等)将字段读取为 a FunPtr a,并且它似乎可以正常工作。

于 2012-08-10T20:24:21.117 回答