c - 基于复杂的 Haskell 类型生成 C 结构

标签 c haskell ffi

我正在尝试在我的 C 代码中使用 Haskell 库。我尝试使用的 Haskell 函数具有 String -> IO [Reference] 类型,其中 Reference 是一个相当复杂的结构(参见 here for details)。

根据阅读各种文档,我似乎必须使这种类型成为 Storable 的实例,并且在我的 C 代码中定义一个类似的结构才能访问它。对于如此复杂的类型,这似乎是很多非常重复的工作。有没有办法自动化这个?怎么会去做这样的事情?

最佳答案

这取决于您的实际用例,但是... 将 Reference 导出为不透明类型(通过 Foreign.StablePtr )并导出 getter 函数以访问各个字段可能会更容易。

如果您需要更多详细信息,请告诉我,我会扩展答案。

关于c - 基于复杂的 Haskell 类型生成 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500582/

相关文章:

c - 如何判断 shell 命令是用 Bash 还是 C 编写的?

基于C的conf文件阅读器

haskell - 将镜头传递给函数

arrays - FFI 可以处理数组吗?如果是这样,怎么做?

java - 将函数的前 2 个参数之外的所有参数传递给另一个函数

c - 如何修复将指针强制转换为整数?

c - 在 c 中放入数组后打印元素

string - 在 Haskell 中读取字符串到 Int 的性能(Bytestring vs [Char])

Haskell 软件包已安装但未找到

haskell - 类型安全的稳定指针