@need 3200

@node Machine-Specific Definitions
@chapter Machine-Specific Definitions
@noindent
@strong{#include <hackerlab/machine/types.h>}@*
@sp 1

The following machine-specific types and macros are used throughout
the Hackerlab C library.

@menu
* Known-Width Integer Types::
* Unsigned Integer Types::
* Sizeof Macros::
* Types for Unicode::
@end menu

@need 3200

@node Known-Width Integer Types
@section Known-Width Integer Types
@sp 1
@need 1750
@noindent
@b{* Type} @code{t_uint8}@tyindex t_uint8
@*

An 8-bit unsigned integer.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_int8}@tyindex t_int8
@*

An 8-bit signed integer.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_uint16}@tyindex t_uint16
@*

An 16-bit unsigned integer.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_int16}@tyindex t_int16
@*

An 16-bit signed integer.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_uint32}@tyindex t_uint32
@*

An 32-bit unsigned integer.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_int32}@tyindex t_int32
@*

An 32-bit signed integer.




@need 3200

@node Unsigned Integer Types
@section Unsigned Integer Types
@sp 1
@need 1750
@noindent
@b{* Type} @code{t_uchar}@tyindex t_uchar
@*

Short-hand for @code{unsigned char}.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_ushort}@tyindex t_ushort
@*

Short-hand for @code{unsigned short}.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_uint}@tyindex t_uint
@*

Short-hand for @code{unsigned int}.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_ulong}@tyindex t_ulong
@*

Short-hand for @code{unsigned long}.




@need 3200

@node Sizeof Macros
@section Sizeof Macros
@sp 1
@need 1750
@noindent
@b{* Macro} @code{MACHINE_SIZEOF_SHORT}@maindex MACHINE_SIZEOF_SHORT
@*

An integer equal to @code{sizeof (short)}.

@sp 1
@need 1750
@noindent
@b{* Macro} @code{MACHINE_SIZEOF_INT}@maindex MACHINE_SIZEOF_INT
@*

An integer equal to @code{sizeof (int)}.

@sp 1
@need 1750
@noindent
@b{* Macro} @code{MACHINE_SIZEOF_LONG}@maindex MACHINE_SIZEOF_LONG
@*

An integer equal to @code{sizeof (long)}.




@need 3200

@node Types for Unicode
@section Types for Unicode
@sp 1
@need 1750
@noindent
@b{* Type} @code{t_unichar}@tyindex t_unichar
@*

A synonym for @code{t_uint16} -- an unsigned 16-bit integer.


This type is used to represent code units in the UTF-16 encoding
form.

@sp 1
@need 1750
@noindent
@b{* Type} @code{t_unicode}@tyindex t_unicode
@*

A synonym for @code{t_uint32} -- an unsigned 32-bit integer.


This type is used to represent Unicode code points and can
also be used to represent code units in the UTF-32 encoding
form.







