Go to the first, previous, next, last section, table of contents.


Data types and constants defined by gh

The following C constants and data types are defined in gh:

Data type: SCM
This is a C data type used to store all Scheme data, no matter what the Scheme type. Values are converted between C data types and the SCM type with utility functions described below (see section Converting data between C and Scheme). [FIXME: put in references to Jim's essay and so forth.]

Constant: SCM_BOOL_T
Constant: SCM_BOOL_F
The Scheme values returned by many boolean procedures in libguile.

This can cause confusion because they are different from 0 and 1. In testing a boolean function in libguile programming, you must always make sure that you check the spec: gh_ and scm_ functions will usually return SCM_BOOL_T and SCM_BOOL_F, but other C functions usually can be tested against 0 and 1, so programmers' fingers tend to just type if (boolean_function()) { ... }

Constant: SCM_UNSPECIFIED
This is an SCM object which does not correspond to any legal Scheme value. It can be used in C to terminate functions with variable numbers of arguments, such as gh_list().


Go to the first, previous, next, last section, table of contents.