- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现有两个调用约定使用 GHC's FFI :ccall
和capi
。该文档没有关于这两个约定的太多信息。它们之间有什么区别,什么时候应该使用它们?一个比另一个快吗?
最佳答案
ccall
是正常的方式。它的工作原理是直接链接到(通常用 C 编写的)库中定义的符号。
capi
是一个在 C 源代码级别工作的 ghc 扩展。这就是为什么它可以访问 ABI 级别不存在的东西,例如宏。 (我不知道它是如何实现的,但我猜它会生成一个小的 C 函数包装器,然后在幕后用 C 编译器对其进行编译。)
我会尽可能使用ccall
。它是语言标准的一部分,总的来说看起来不那么“神奇”。
关于haskell - ccall 和 capi FFI 调用约定之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37687318/
亲爱的 GHC/Haskell 大师, 我目前正在使用 GHC 编写一个(中型)Haskell 服务器应用程序,它(大量)通过 FFI 使用第 3 方 C 库函数。换句话说,在服务客户端请求时,服务器
我希望有人能澄清 Julia 垃圾收集器行为的一个方面,以及它如何与使用 ccall 调用 C 函数分配的内存进行交互。 . 例如,我正在调用以下电话: setup::Ptr{Void} =
我是 Julia 的新手,我试图在语言层面上理解 ccall 是。在语法级别,它看起来像一个普通函数,但它在获取参数方面的行为显然不同: Note that the argument type tup
我正在尝试使用 ccall 与 Windows 函数(具体来说是 FindWindowA)进行交互,但我遇到了一个奇怪的行为 julia> ccall((:FindWindowA, :user32),
我正在尝试使用 Julia 的 ccall与 C 库接口(interface)的函数。所有类型和指针都是正确的,并且下面的函数调用成功地返回了正确的答案(为简洁起见,此处未显示变量定义和设置)。
我发现有两个调用约定使用 GHC's FFI :ccall 和capi。该文档没有关于这两个约定的太多信息。它们之间有什么区别,什么时候应该使用它们?一个比另一个快吗? 最佳答案 ccall 是正常的
我想调用一个调用 c 函数的函数,但我希望能够换出实际的 C 函数 function Ccall(fn) ... more code 1 ... ccall((fn, libc)
有人可以解释吗?如何使用“ccall”函数将任何数组从 julia 发送到 rust。发送常用变量或常量没有问题。 我有 Julia代码: A = Array{Float64,1}(undef, 2)
我制作了一个简短的 Haskell 程序,它公开了 C 或 Python 的函数。已关注 http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/
我在 c++ 中有一些回调函数,我想在使用 emscripten 编译后在 javascript 中重新创建。 有谁知道如何使用 ccall 或 cwrap 调用它们? 谢谢! 最佳答案 我使用的技术
我是一名优秀的程序员,十分优秀!