这个问题听起来很琐碎,但是在浏览了ECL文档,CFFI文档并求助于google之后,我仍然无法找到确切的答案。 ECL文档未提及回调语法,CFFI文档未提及关于ECL中的回调的任何实现限制,并且我无法将google提示的页面转换为逻辑。

最佳答案

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形式提供要执行的代码。

10-07 19:10