обзор системных типов данных (overview of system data types)
Примечание (Note)
The structures described in this manual page shall contain, at
least, the members shown in their definition, in no particular
order.
Most of the integer types described in this page don't have a
corresponding length modifier for the printf(3) and the scanf(3)
families of functions. To print a value of an integer type that
doesn't have a length modifier, it should be converted to
intmax_t or uintmax_t by an explicit cast. To scan into a
variable of an integer type that doesn't have a length modifier,
an intermediate temporary variable of type intmax_t or uintmax_t
should be used. When copying from the temporary variable to the
destination variable, the value could overflow. If the type has
upper and lower limits, the user should check that the value is
within those limits, before actually copying the value. The
example below shows how these conversions should be done.
Conventions used in this page
In "Conforming to" we only concern ourselves with C99 and later
and POSIX.1-2001 and later. Some types may be specified in
earlier versions of one of these standards, but in the interests
of simplicity we omit details from earlier standards.
In "Include", we first note the "primary" header(s) that define
the type according to either the C or POSIX.1 standards. Under
"Alternatively", we note additional headers that the standards
specify shall define the type.