4

这个问题听起来微不足道,但经过一段时间查看 ECL 文档、CFFI 文档并求助于谷歌后,我仍然无法得出明确的答案。ECL 文档没有提到回调语法,CFFI 文档没有提到关于 ECL 中的回调的任何实现限制,而且我无法将谷歌提示的页面转换为合乎逻辑的。

4

1 回答 1

6

ECL 确实支持解释模式和编译模式的回调。CFFI 为您处理一切,这就是为什么没有具体提及 ECL(为什么应该有?)。如果您关心实际的实现,请查看 ecl/src/lsp/ffi.lsp。FFI:DEFCALLBACK 的签名是 (defmacro defcallback (name ret-type ((arg-name arg-type)*) &body body) 换句话说,它采用与 DEF-FUNCTION 或多或少相同的参数(类型语法是同样,UFFI),但它明确命名每个参数(arg-name)并在 lisp 中提供要执行的代码。

于 2012-03-05T18:30:54.553 回答