![](https://img.51dongshi.com/20250106/wz/18448267152.jpg)
c語言函數調用的三種方式1.函數立即調用執行模式。2.通過構造函數創建對象,然后調用自己的方法。3.通過構造器調用函數。定義一個外部函數,然后輸入#’name看結果,#FOREIGN-FUNCTION C_FUN_NAME #x10001030,不同于FUNCTION和COMPILED-FUNCTION。函數SYSTEM::%PUTD,輸入一個名稱和一個函數對象,相當于定義一個函數。例如(system::%putd foo #(lambda (x y) (+ x y))),相當于(defun foo (x y) (+ x y))。宏ffi::def-call-out就用它生成函數,不過輸入的函數對象不是lambda,而是FOREIGN-FUNCTION對象,該外部函數對象由函數ffi::find-foreign-function返回。函數ffi::find-foreign-function從DLL中找出指定名稱的函數。輸入6個參數,C函數名(字符串),函數類型(PARSE-C-FUNCTION返回的數組),properites(布爾),DLL文件名(字符串),版本號,未知參數(填NIL),返回外部函數對象。