cffi的foreign-alloc包含一个包含defconstant的列表

时间:2013-09-17 07:38:18

标签: c common-lisp cffi

我正在尝试:

(defconstant x 1)
(cffi:foreign-alloc :int :initial-contents  '(x 99))

但是我收到一条错误消息:

The value X is not of type (SIGNED-BYTE 32).
   [Condition of type TYPE-ERROR]

我可以定义这个非常重要:

(x 99) ; x does need to be a defconstant equaling 1

作为我正在编写的代码的指针。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

尝试

(cffi:foreign-alloc :int :initial-contents (list x 99))

'(x 99)表示未评估(x 99),因此其列表包含符号x和数字99

(list x 99)是一个函数,因此评估x并将其替换为值1,然后创建一个包含内容1 and 99的列表。