| Name | Description | Notes | Source | Availability | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| atomic_ | Atomic integer type | ? | T | <stdatomic.h> | C11 | ||||||
| atomic_ | Atomic integer type | ? | T | <stdatomic.h> | C11 | ||||||
| 
            INTMAX_C() | Create constant of type 
            intmax_t | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| 
            INTMAX_ | Maximum value of 
            intmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| 
            INTMAX_ | Minimum value of 
            intmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| 
            intmax_t | Largest signed integer type | L | T | <stdint.h> | C99 | C11 | |||||
| 
            PRIdMAX | Decimal output conversion specifier for 
            intmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            PRIiMAX | Decimal output conversion specifier for 
            intmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            PRIoMAX | Octal output conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            PRIuMAX | Decimal output conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            PRIXMAX | Hexdecimal output conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            PRIxMAX | Hexdecimal output conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            SCNdMAX | Decimal input conversion specifier for 
            intmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            SCNiMAX | General input conversion specifier for 
            intmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            SCNoMAX | Octal input conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            SCNuMAX | Decimal input conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            SCNxMAX | Hexdecimal input conversion specifier for 
            uintmax_t | M | <inttypes.h> | C99 | C11 | ||||||
| 
            UINTMAX_C() | Create constant of type 
            uintmax_t | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| 
            UINTMAX_ | Maximum value of 
            uintmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| 
            uintmax_t | Largest unsigned integer type | L | T | <stdint.h> | C99 | C11 | |||||
      uintmax_t and intmax_t
      are the largest integer
      types of at least 64 bits. 
      uintmax_t is unsigned, and has the range zero
      to UINTMAX_,
      which is at least [0, +18446744073709551615]. intmax_t
      is signed, and has the range INTMAX_
      to INTMAX_,
      which is at least [−9223372036854775807,
      +9223372036854775807].
The following macros can be used in the fmt argument of printf to print arguments of types
      
      uintmax_t and intmax_t:
- PRIuMAX
- PRIoMAX
- PRIxMAX
- PRIXMAX
- PRIdMAX
- PRIiMAX
The following macros can be used in the fmt argument of scanf to scan arguments of types
      
      uintmax_t * and intmax_t
      *:
- SCNuMAX
- SCNoMAX
- SCNxMAX
- SCNdMAX
- SCNiMAX
atomic_
      is an alias for _Atomic 
      uintmax_t. atomic_
      is an alias for _Atomic intmax_t.
| Property | 
            uintmax_t | 
            intmax_t | |
|---|---|---|---|
| Minimum width (bits) | 64 | ||
| Lowest value | 0 | ≤−9223372036854775807 | |
| Highest value | ≥+18446744073709551615 | ≥+9223372036854775807 | |
| Constant | 
          UINTMAX_C(untyped-integer-constant) | 
          INTMAX_C(untyped-integer-constant) | |
| printf | base 10 | "%" 
          PRIuMAX | "%" 
          PRIdMAXor"%" 
          PRIiMAX | 
| base 8 | "%" 
          PRIoMAX | ||
| upper-case base 16 | "%" 
          PRIXMAX | ||
| lower-case base 16 | "%" 
          PRIxMAX | ||
| scanf | base 10 | "%" 
          SCNuMAX | "%" 
          SCNdMAX | 
| base 8 | "%" 
          SCNoMAX | ||
| base 16 | "%" 
          SCNxMAX | ||
| base 16, 8 or 10 by prefix | "%" 
          SCNiMAX | ||
