Next: , Previous: Primitive Types, Up: Types


2.3.2 Structures

Although ‘libffi’ has no special support for unions or bit-fields, it is perfectly happy passing structures back and forth. You must first describe the structure to ‘libffi’ by creating a new ffi_type object for it.

— ffi_type:

The ffi_type has the following members:

size_t size
This is set by libffi; you should initialize it to zero.
unsigned short alignment
This is set by libffi; you should initialize it to zero.
unsigned short type
For a structure, this should be set to FFI_TYPE_STRUCT.
ffi_type **elements
This is a ‘NULL’-terminated array of pointers to ffi_type objects. There is one element per field of the struct.