                                    \
         _Complex type x;                                         \
       };                                                        \
       ffi_type ffi_type_complex_##name = {                      \
         sizeof(_Complex type),                                   \
         offsetof(struct struct_align_complex_##name, x),         \
         FFI_TYPE_COMPLEX,                                        \
         (ffi_type **)ffi_elements_complex_##name                 \
       }

     /* Define new complex type descriptors using the macro: */
     /* ffi_type_complex_sint */
     FFI_COMPLEX_TYPEDEF(sint, int, ffi_type_sint);
     /* ffi_type_complex_uchar */
     FFI_COMPLEX_TYPEDEF(uchar, unsigned char, ffi_type_uint8);

   The new type descriptors can then be used like one of the built-in
type descriptors in the previous example.

