问题听起来微不足道,但经过一段时间查看ECL文档,CFFI文档并诉诸谷歌,我仍然无法得出明确的答案。 ECL文档没有提到回调语法,CFFI文档没有提到关于ECL中回调的任何实现限制,并且我无法将google提示的页面转换为逻辑。
答案 0 :(得分:6)
ECL在解释和编译模式下都支持回调。 CFFI会为您处理一切,这就是为什么没有具体提到ECL(为什么会这样?)。如果您关心实际实现,请查看ecl / src / lsp / ffi.lsp。 FFI:DEFCALLBACK的签名是 (defmacro defcallback(名称ret-type((arg-name arg-type)*)& body body) 换句话说,它与DEF-FUNCTION(类型语法相同,UFFI)或多或少相同的参数,但它明确地命名每个参数(arg-name)并在lisp中提供要执行的代码。