4.1.7 Passing foreign and Lisp data types
4.1.7.4 Passing Lisp data to C functions
Use Table 4.6 to find out about passing Lisp data as arguments to a C function or returning data from Lisp to a C function.
Passing Lisp data to C functions Lisp Type | C Data Type | Call Discipline | (unsigned-byte 32) | :unsigned-32bit | :value |
(signed-byte 32) | :signed-32bit | :value |
(unsigned-byte 64) | :unsigned-64bit | :value |
(signed-byte 64) | :signed-64bit | :value |
fixnum | :fixnum | :value |
float | :single-float | :value |
float | :double-float | :value |
foreign-pointer | :pointer | :reference |
foreign-pointer | (:pointer foreign-type) | :reference |
coercible-to-foreign-array | :array | :reference |
(simple-array (not string-char) 1) | :simple-vector-type | :reference |
simple-string | :simple-string | :reference |
c-string-type | :string | :reference |
character | :character | :value |
t | :boolean | :value |
t | :lisp | :value |
(or fixnum float integer character foreign-pointer c-string-type coercible-to-foreign-array) | :arbitrary | nil |
The Advanced User's Guide - 9 SEP 1996 Generated with Harlequin WebMaker