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 |
"%"
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 |