【问题标题】:How do I return a symbol from a C function in gambit scheme?如何从 Gambit 方案中的 C 函数返回符号?
【发布时间】:2013-02-17 17:31:22
【问题描述】:

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

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

【问题讨论】:

    标签: c scheme ffi gambit


    【解决方案1】:

    我问了这个问题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 的策略兼容,而且我不认为性能影响会很大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2015-09-12
      相关资源
      最近更新 更多