Package: cffi

Macro defcunion

Lambda List

defcunion (name &body fields)

Syntax

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

Arguments

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.

Details

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.

Examples

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

See also