Consider the C function cfoo with the following calling convention:
which can be described by the following call to def-alien-routine:cfoo (str, a, i) char *str; char *a; /* update */ int *i; /* out */ { /* Body of cfoo. */ }
The Lisp function cfoo will have two arguments (str and a) and two return values (a and i).(def-alien-routine "cfoo" void (str c-string) (a char :in-out) (i int :out))