These types correspond to the native C integer types according to the ABI of the Lisp implementation's host system.
:long-long and :unsigned-long-long are not supported
natively on all implementations. However, they are emulated by
mem-ref and mem-set.
When those types are not available, the symbol
cffi-sys::no-long-long is pushed into *features*.
For convenience, the above types are provided as shortcuts for
unsigned-char, unsigned-short, unsigned-int,
unsigned-long, long-long and unsigned-long-long,
respectively.
Foreign integer types of specific sizes, corresponding to the C types
defined in stdint.h.
On all systems, the :float and :double types represent a
C float and double, respectively. On most but not all
systems, :float and :double represent a Lisp
single-float and double-float, respectively. It is not
so useful to consider the relationship between Lisp types and C types
as isomorphic, as simply to recognize the relationship, and relative
precision, among each respective category.
This type is only supported on SCL.
A foreign pointer to an object of any type, corresponding to
void *. You can optionally specify type of pointer
(e.g. (:pointer :char)). Although CFFI won't do anything
with that information yet, it is useful for documentation purposes.
No type at all. Only valid as the return type of a function.