我想为printf
Chez Scheme 中的 C 函数编写一个 FFI,使用foreign-procedure
. 但我不知道我应该把什么作为签名,因为printf
函数中的最后一个参数是一个可变参数。这是我的代码:
(import (chezscheme))
(define (print-format)
(foreign-procedure "printf"
(string void*) int)) ;; <-- Here, the type format is "(arg arg ...) ret"
(print-format "Hello, %s!" "Ryan")
我也试过这个也无济于事:
(define (print-format . args)
(foreign-procedure "printf"
(string args) int))
这也不起作用:
(define (print-format)
(foreign-procedure "printf"
(string ...) int))
如何在函数签名中指定可变参数foreign-procedure
?