Scheme 48 Manual -- Unsafe functions and macros

Scheme 48 Manual | Contents | In Chapter: Mixing Scheme 48 and C
Previous: Unsafe functions and macros | Next: Unsafe functions and macros

## Unsafe functions and macros

All of the C procedures and macros described above check that their arguments have the appropriate types and that indexes are in range. The following procedures and macros are identical to those described above, except that they do not perform type and range checks. They are provided for the purpose of writing more efficient code; their general use is not recommended.

- `char S48_UNSAFE_EXTRACT_CHAR(s48_value)`
- `char * S48_UNSAFE_EXTRACT_STRING(s48_value)`
- `long S48_UNSAFE_EXTRACT_DOUBLE(s48_value)`

- `long S48_UNSAFE_EXTRACT_FIXNUM(s48_value)`
- `s48_value S48_UNSAFE_ENTER_FIXNUM(long)`

- `s48_value S48_UNSAFE_CAR(s48_value)`
- `s48_value S48_UNSAFE_CDR(s48_value)`
- `void S48_UNSAFE_SET_CAR(s48_value, s48_value)`
- `void S48_UNSAFE_SET_CDR(s48_value, s48_value)`

- `long S48_UNSAFE_VECTOR_LENGTH(s48_value)`
- `s48_value S48_UNSAFE_VECTOR_REF(s48_value, long)`
- `void S48_UNSAFE_VECTOR_SET(s48_value, long, s48_value)`

- `long S48_UNSAFE_STRING_LENGTH(s48_value)`
- `char S48_UNSAFE_STRING_REF(s48_value, long)`
- `void S48_UNSAFE_STRING_SET(s48_value, long, char)`

- `s48_value S48_UNSAFE_SYMBOL_TO_STRING(s48_value)`

- `long S48_UNSAFE_BYTE_VECTOR_LENGTH(s48_value)`
- `char S48_UNSAFE_BYTE_VECTOR_REF(s48_value, long)`
- `void S48_UNSAFE_BYTE_VECTOR_SET(s48_value, long, int)`

- `s48_value S48_UNSAFE_SHARED_BINDING_REF(s48_value s_b)`
- `int S48_UNSAFE_SHARED_BINDING_P(x)`
- `int S48_UNSAFE_SHARED_BINDING_IS_IMPORT_P(s48_value s_b)`
- `s48_value S48_UNSAFE_SHARED_BINDING_NAME(s48_value s_b)`
- `void S48_UNSAFE_SHARED_BINDING_SET(s48_value s_b, s48_value value)`

- `s48_value S48_UNSAFE_RECORD_TYPE(s48_value)`
- `s48_value S48_UNSAFE_RECORD_REF(s48_value, long)`
- `void S48_UNSAFE_RECORD_SET(s48_value, long, s48_value)`

- `type S48_UNSAFE_EXTRACT_VALUE(s48_value, type)`
- `type * S48_UNSAFE_EXTRACT_VALUE_POINTER(s48_value, type)`
- `void S48_UNSAFE_SET_VALUE(s48_value, type, value)`

Previous: Unsafe functions and macros | Next: Unsafe functions and macros