c - 如何从开局方案中的 C 函数返回符号?

标签 c scheme ffi gambit

我在 c-lambda 后面有一个 C 函数,它需要通过 select(2) 调用进行一些搜索,并确定要返回的方案符号,以指示它做了什么,以及是否存在错误条件发生了。文档中没有解释如何从 C 中获取一个命名符号作为 ___SCMOBJ(或任何更合适的符号),而且 wiki 似乎已经崩溃了。从 gambit.h 中也不能立即看出是否有用于此目的的宏。

这有可能开箱即用吗?我目前的解决方法是将可返回的符号作为参数传递给函数,但是如果我希望能够返回更多的符号,这很快就会变得非常笨拙。

最佳答案

我问了这个问题on the gambit-c mailing list .主要有以下三种回应:

  1. Export string->symbol to C
  2. Build a lookup table before calling into C
  3. Upgrade gambit

我暂时选择 (1),因为我想与 Debian Squeeze 的策略兼容,而且我认为性能影响不会很大。

关于c - 如何从开局方案中的 C 函数返回符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923901/

相关文章:

algorithm - 什么是最优的 "most general unifier"算法?

lua - 让Lua调用宿主程序?

Haskell FFI 对具有可变参数的函数的支持

c - 为什么 Visual Studio 会忽略我项目中的 .h 文件?

c - 在只处理整数的程序中输入 float

image - 如何在 R5RS 中使用图像

scheme - Lisp Scheme -cannot reference undefined identifier 错误

javascript - Node ffi 指向结构体的指针

c - 如果我们使用 = 运算符而不是 memcpy() 分配不同的结构会怎么样

c - 打印 double 时 printf 打印零