| 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:
PRIuMAXPRIoMAXPRIxMAXPRIXMAXPRIdMAXPRIiMAX
The following macros can be used in the fmt argument of scanf to scan arguments of types
uintmax_t * and intmax_t
*:
SCNuMAXSCNoMAXSCNxMAXSCNdMAXSCNiMAX
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 |
"%"
PRIdMAX or "%"
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 |
||