2.3. Types

Table 2.1. Table of Reindeer types

C Type RenType value Minimum bit-width Description
ren_sint08 REN_TYPE_SINT08 8 Signed integer
ren_uint08 REN_TYPE_UINT08 8 Unsigned integer
ren_sint16 REN_TYPE_SINT16 16 Signed integer
ren_uint16 REN_TYPE_UINT16 16 Unsigned integer
ren_sint32 REN_TYPE_UINT32 32 Signed integer
ren_uint32 REN_TYPE_SINT32 32 Unsigned integer
ren_sint64 REN_TYPE_SINT64 64 Signed integer
ren_uint64 REN_TYPE_UINT64 64 Unsigned integer
ren_sfloat REN_TYPE_SFLOAT 32 Single-precision floating-point number
ren_double REN_TYPE_DFLOAT 64 Double-precision floating-point number
ren_bool REN_TYPE_BOOL 1 Boolean. False (FALSE) is zero, true (TRUE) is non-zero.
ren_size n/a System dependent Integer large enough to hold the numeric value of a pointer.

Implementations are not required to correctly interpret bits outside the minimum range. Thus, if a variable has a value outside the defined ranges it will lead to undefined behavior.

Reindeer types are not necessarily identical to the corresponding standard C types. Never cast pointers of C types to pointers of Reindeer types or vice versa.

RenType is an enumerated type generally used to describe what type is being pointed at. Since the type ren_size is never used in this context, it does not have a value in RenType.

The following function returns the size of type in bytes.

ren_size ren_type_sizeof( RenType type);