обзор системных типов данных  (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.