The following facilities are available for interfacing between Scheme 48 and C:
The structure external-calls
has
most of the Scheme functions described here.
The others are in
dynamic-externals
, which has the functions for dynamic loading and
name lookup from
the section on Dynamic Loading,
and shared-bindings
, which has the additional shared-binding functions
described in
the section on the complete shared-binding interface.
The names of all of Scheme 48's visible C bindings begin
with `s48_
' (for procedures and variables) or
`S48_
' (for macros).
Whenever a C name is derived from a Scheme identifier, we
replace `-
' with `_
' and convert letters to lowercase
for procedures and uppercase for macros.
A final `?
' converted to `_p
' (`_P
' in C macro names).
A final `!
' is dropped.
Thus the C macro for Scheme's pair?
is S48_PAIR_P
and
the one for set-car!
is S48_SET_CAR
.
Procedures and macros that do not check the types of their arguments
have `unsafe
' in their names.
All of the C functions and macros described have prototypes or definitions
in the file c/scheme48.h
.
The C type for Scheme values is defined there to be s48_value
.
Previous: Mixing Scheme 48 and C | Next: Shared bindings