1@node unitypes.h
2@chapter Elementary types @code{<unitypes.h>}
3
4The include file @code{<unitypes.h>} provides the following basic types.
5
6@deftp Type uint8_t
7@deftpx Type uint16_t
8@deftpx Type uint32_t
9These are the storage units of UTF-8/16/32 strings, respectively.  The definitions are
10taken from @code{<stdint.h>}, on platforms where this include file is present.
11@end deftp
12
13@deftp Type ucs4_t
14This type represents a single Unicode character, outside of an UTF-32 string.
15@end deftp
16
17The types @code{ucs4_t} and @code{uint32_t} happen to be identical.  They differ
18in use and intent, however:
19@itemize @bullet
20@item
21Use @code{uint32_t *} to designate an UTF-32 string.  Use @code{ucs4_t} to
22designate a single Unicode character, outside of an UTF-32 string.
23@item
24Conversions functions that take an UTF-32 string as input will usually perform
25a range-check on the @code{uint32_t} values.  Whereas functions that are
26declared to take @code{ucs4_t} arguments will not perform such a range-check.
27@end itemize
28