The defining macros of the C-FFI share a consistent core set of options which are worth describing here:
c-name:. It is optional in some forms but required in others. You can define types that have no named opposite number in C, and the c-name option is always optional in type definitions. On the other hand, you must always name an imported C function or variable so that Dylan knows the correct name from the compiled C library to link with.
extern can only be found by the C-FFI if you pass a c-name argument to the corresponding C-FFI definition.
pointer-type-name: keyword option.