Package: cffi

Macro defcunion

Lambda List

defcunion (name &body fields)


doc-and-slots ::= [docstring] { (slot-name slot-type &key count) }*


name -- The name of new union type.
docstring -- A documentation string, ignored.
slot-name -- A symbol naming the slot.
slot-type -- The type specifier for the slot.
count -- Used to declare an array of size count inside the structure.


A union is a structure in which all slots have an offset of zero. It is isomorphic to the C union. Therefore, you should use the usual foreign structure operations for accessing a union's slots.


  (defcunion uint32-bytes
    (int-value :unsigned-int)
    (bytes :unsigned-char :count 4))  

See also