# intN_t

## NAME



           intN_t, int8_t, int16_t, int32_t, int64_t, uintN_t, uint8_t,
           uint16_t, uint32_t, uint64_t - fixed-width basic integer types
    


## LIBRARY



           Standard C library (_libc_)
    


## SYNOPSIS



           **#include <stdint.h>**
    
           **typedef** /* ... */ **int8_t;**
           **typedef** /* ... */ **int16_t;**
           **typedef** /* ... */ **int32_t;**
           **typedef** /* ... */ **int64_t;**
    
           **typedef** /* ... */ **uint8_t;**
           **typedef** /* ... */ **uint16_t;**
           **typedef** /* ... */ **uint32_t;**
           **typedef** /* ... */ **uint64_t;**
    
           **#define INT8_WIDTH   8**
           **#define INT16_WIDTH  16**
           **#define INT32_WIDTH  32**
           **#define INT64_WIDTH  64**
    
           **#define UINT8_WIDTH  8**
           **#define UINT16_WIDTH 16**
           **#define UINT32_WIDTH 32**
           **#define UINT64_WIDTH 64**
    
           **#define INT8_MAX** /*  2**(INT8_WIDTH - 1) - 1   */
           **#define INT16_MAX** /*  2**(INT16_WIDTH - 1) - 1  */
           **#define INT32_MAX** /*  2**(INT32_WIDTH - 1) - 1  */
           **#define INT64_MAX** /*  2**(INT64_WIDTH - 1) - 1  */
    
           **#define INT8_MIN** /*  - 2**(INT8_WIDTH - 1)     */
           **#define INT16_MIN** /*  - 2**(INT16_WIDTH - 1)    */
           **#define INT32_MIN** /*  - 2**(INT32_WIDTH - 1)    */
           **#define INT64_MIN** /*  - 2**(INT64_WIDTH - 1)    */
    
           **#define UINT8_MAX** /*  2**INT8_WIDTH - 1         */
           **#define UINT16_MAX** /*  2**INT16_WIDTH - 1        */
           **#define UINT32_MAX** /*  2**INT32_WIDTH - 1        */
           **#define UINT64_MAX** /*  2**INT64_WIDTH - 1        */
    
           **#define INT8_C(**_c_**)**_c_ **##** /* ... */
           **#define INT16_C(**_c_**)**_c_ **##** /* ... */
           **#define INT32_C(**_c_**)**_c_ **##** /* ... */
           **#define INT64_C(**_c_**)**_c_ **##** /* ... */
    
           **#define UINT8_C(**_c_**)**_c_ **##** /* ... */
           **#define UINT16_C(**_c_**)**_c_ **##** /* ... */
           **#define UINT32_C(**_c_**)**_c_ **##** /* ... */
           **#define UINT64_C(**_c_**)**_c_ **##** /* ... */
    


## DESCRIPTION



           _int_ N __t_ are signed integer types of a fixed width of exactly N
           bits, _N_ being the value specified in its type name.  They are be
           capable of storing values in the range [**INT** _N_**_MIN** , **INT** _N_**_MAX**],
           substituting _N_ by the appropriate number.
    
           _uint_ N __t_ are unsigned integer types of a fixed width of exactly N
           bits, N being the value specified in its type name.  They are
           capable of storing values in the range [**0** , **UINT** _N_**_MAX**],
           substituting _N_ by the appropriate number.
    
           According to POSIX, [_u_]_int8_t_ , [_u_]_int16_t_ , and [_u_]_int32_t_ are
           required; [_u_]_int64_t_ are only required in implementations that
           provide integer types with width 64; and all other types of this
           form are optional.
    
           The macros [**U**]**INT** _N_**_WIDTH** expand to the width in bits of these
           types (_N_).
    
           The macros [**U**]**INT** _N_**_MAX** expand to the maximum value that these
           types can hold.
    
           The macros **INT** _N_**_MIN** expand to the minimum value that these types
           can hold.
    
           The macros [**U**]**INT** _N_**_C**() expand their argument to an integer
           constant of type [_u_]_int_ N __t_.
    
           The length modifiers for the [_u_]_int_ N __t_ types for the printf(3)
           family of functions are expanded by macros of the forms **PRId** _N_ ,
           **PRIi** _N_ , **PRIu** _N_ , and **PRIx** _N_ (defined in _< inttypes.h>_); resulting for
           example in **%"PRId64"** or **%"PRIi64"** for printing _int64_t_ values.
           The length modifiers for the [_u_]_int_ N __t_ types for the scanf(3)
           family of functions are expanded by macros of the forms **SCNd** _N_ ,
           **SCNi** _N_ , **SCNu** _N_ , and **SCNx** _N,_ (defined in _< inttypes.h>_); resulting for
           example in **%"SCNu8"** or **%"SCNx8"** for scanning _uint8_t_ values.
    


## STANDARDS



           C11, POSIX.1-2008.
    


## NOTES



           The following header also provides these types: _< inttypes.h>_.
           _< arpa/inet.h>_ also provides _uint16_t_ and _uint32_t_.
    


* * *