# <inttypes.h>
<inttypes.h>
# ``
[added with
[C99](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_lib_over.html#C99)]
* * *
**`abs· div· imaxabs· imaxdiv· imaxdiv_t· strtoimax· strtoumax· wcstoimax· wcstoumax`**
**`PRId8· PRId16· PRId32· PRId64· PRIdFAST8· PRIdFAST16· PRIdFAST32· PRIdFAST64· PRIdLEAST8· PRIdLEAST16· PRIdLEAST32· PRIdLEAST64· PRIdMAX· PRIdPTR· PRIi8· PRIi16· PRIi32· PRIi64· PRIiFAST8· PRIiFAST16· PRIiFAST32· PRIiFAST64· PRIiLEAST8· PRIiLEAST16· PRIiLEAST32· PRIiLEAST64· PRIiMAX· PRIiPTR· PRIo8· PRIo16· PRIo32· PRIo64· PRIoFAST8· PRIoFAST16· PRIoFAST32· PRIoFAST64· PRIoLEAST8· PRIoLEAST16· PRIoLEAST32· PRIoLEAST64· PRIoMAX· PRIoPTR· PRIu8· PRIu16· PRIu32· PRIu64· PRIuFAST8· PRIuFAST16· PRIuFAST32· PRIuFAST64· PRIuLEAST8· PRIuLEAST16· PRIuLEAST32· PRIuLEAST64· PRIuMAX· PRIuPTR· PRIx8· PRIx16· PRIx32· PRIx64· PRIxFAST8· PRIxFAST16· PRIxFAST32· PRIxFAST64· PRIxLEAST8· PRIxLEAST16· PRIxLEAST32· PRIxLEAST64· PRIxMAX· PRIxPTR· PRIX8· PRIX16· PRIX32· PRIX64· PRIXFAST8· PRIXFAST16· PRIXFAST32· PRIXFAST64· PRIXLEAST8· PRIXLEAST16· PRIXLEAST32· PRIXLEAST64· PRIXMAX· PRIXPTR`**
**`SCNd8· SCNd16· SCNd32· SCNd64· SCNdFAST8· SCNdFAST16· SCNdFAST32· SCNdFAST64· SCNdLEAST8· SCNdLEAST16· SCNdLEAST32· SCNdLEAST64· SCNdMAX· SCNdPTR· SCNi8· SCNi16· SCNi32· SCNi64· SCNiFAST8· SCNiFAST16· SCNiFAST32· SCNiFAST64· SCNiLEAST8· SCNiLEAST16· SCNiLEAST32· SCNiLEAST64· SCNiMAX· SCNiPTR· SCNo8· SCNo16· SCNo32· SCNo64· SCNoFAST8· SCNoFAST16· SCNoFAST32· SCNoFAST64· SCNoLEAST8· SCNoLEAST16· SCNoLEAST32· SCNoLEAST64· SCNoMAX· SCNoPTR· SCNu8· SCNu16· SCNu32· SCNu64· SCNuFAST8· SCNuFAST16· SCNuFAST32· SCNuFAST64· SCNuLEAST8· SCNuLEAST16· SCNuLEAST32· SCNuLEAST64· SCNuMAX· SCNuPTR· SCNx8· SCNx16· SCNx32· SCNx64· SCNxFAST8· SCNxFAST16· SCNxFAST32· SCNxFAST64· SCNxLEAST8· SCNxLEAST16· SCNxLEAST32· SCNxLEAST64· SCNxMAX· SCNxPTR`**
* * *
Include the standard header **``**
to include the standard header
[``](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html) and to define a type,
several functions, and numerous macros for fine control over the
conversion of integers. Note that the definitions shown for the
macros are merely representative -- they can vary among implementations.
/* TYPE DEFINITIONS */
typedef struct {
intmax_t quot, rem;
} imaxdiv_t;
/* FUNCTION DECLARATIONS */
intmax_t imaxabs(intmax_t i);
intmax_t abs(intmax_t i); [C++ only]
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
imaxdiv_t div(intmax_t numer, intmax_t denom); [C++ only]
intmax_t strtoimax(const char *restrict s,
char **restrict endptr, int base);
uintmax_t strtoumax(const char *restrict s,
char **restrict endptr, int base);
intmax_t wcstoimax(const wchar_t *restrict s,
wchar_t **restrict endptr, int base);
uintmax_t wcstoumax(const wchar_t *restrict s,
wchar_t **restrict endptr, int base);
/* PRINT FORMAT MACROS */
#define PRId8 "hhd"
#define PRId16 "hd"
#define PRId32 "ld"
#define PRId64 "lld"
#define PRIdFAST8 "hhd"
#define PRIdFAST16 "hd"
#define PRIdFAST32 "ld"
#define PRIdFAST64 "lld"
#define PRIdLEAST8 "hhd"
#define PRIdLEAST16 "hd"
#define PRIdLEAST32 "ld"
#define PRIdLEAST64 "lld"
#define PRIdMAX "lld"
#define PRIdPTR "lld"
#define PRIi8 "hhi"
#define PRIi16 "hi"
#define PRIi32 "li"
#define PRIi64 "lli"
#define PRIiFAST8 "hhi"
#define PRIiFAST16 "hi"
#define PRIiFAST32 "li"
#define PRIiFAST64 "lli"
#define PRIiLEAST8 "hhi"
#define PRIiLEAST16 "hi"
#define PRIiLEAST32 "li"
#define PRIiLEAST64 "lli"
#define PRIiMAX "lli"
#define PRIiPTR "lli"
#define PRIo8 "hho"
#define PRIo16 "ho"
#define PRIo32 "lo"
#define PRIo64 "llo"
#define PRIoFAST8 "hho"
#define PRIoFAST16 "ho"
#define PRIoFAST32 "lo"
#define PRIoFAST64 "llo"
#define PRIoLEAST8 "hho"
#define PRIoLEAST16 "ho"
#define PRIoLEAST32 "lo"
#define PRIoLEAST64 "llo"
#define PRIoMAX "llo"
#define PRIoPTR "llo"
#define PRIu8 "hhu"
#define PRIu16 "hu"
#define PRIu32 "lu"
#define PRIu64 "llu"
#define PRIuFAST8 "hhu"
#define PRIuFAST16 "hu"
#define PRIuFAST32 "lu"
#define PRIuFAST64 "llu"
#define PRIuLEAST8 "hhu"
#define PRIuLEAST16 "hu"
#define PRIuLEAST32 "lu"
#define PRIuLEAST64 "llu"
#define PRIuMAX "llu"
#define PRIuPTR "llu"
#define PRIx8 "hhx"
#define PRIx16 "hx"
#define PRIx32 "lx"
#define PRIx64 "llx"
#define PRIxFAST8 "hhx"
#define PRIxFAST16 "hx"
#define PRIxFAST32 "lx"
#define PRIxFAST64 "llx"
#define PRIxLEAST8 "hhx"
#define PRIxLEAST16 "hx"
#define PRIxLEAST32 "lx"
#define PRIxLEAST64 "llx"
#define PRIxMAX "llx"
#define PRIxPTR "llx"
#define PRIX8 "hhX"
#define PRIX16 "hX"
#define PRIX32 "lX"
#define PRIX64 "llX"
#define PRIXFAST8 "hhX"
#define PRIXFAST16 "hX"
#define PRIXFAST32 "lX"
#define PRIXFAST64 "llX"
#define PRIXLEAST8 "hhX"
#define PRIXLEAST16 "hX"
#define PRIXLEAST32 "lX"
#define PRIXLEAST64 "llX"
#define PRIXMAX "llX"
#define PRIXPTR "llX"
/* SCAN FORMAT MACROS */
#define SCNd8 "hhd"
#define SCNd16 "hd"
#define SCNd32 "ld"
#define SCNd64 "lld"
#define SCNdFAST8 "hhd"
#define SCNdFAST16 "hd"
#define SCNdFAST32 "ld"
#define SCNdFAST64 "lld"
#define SCNdLEAST8 "hhd"
#define SCNdLEAST16 "hd"
#define SCNdLEAST32 "ld"
#define SCNdLEAST64 "lld"
#define SCNdMAX "lld"
#define SCNdPTR "lld"
#define SCNi8 "hhi"
#define SCNi16 "hi"
#define SCNi32 "li"
#define SCNi64 "lli"
#define SCNiFAST8 "hhi"
#define SCNiFAST16 "hi"
#define SCNiFAST32 "li"
#define SCNiFAST64 "lli"
#define SCNiLEAST8 "hhi"
#define SCNiLEAST16 "hi"
#define SCNiLEAST32 "li"
#define SCNiLEAST64 "lli"
#define SCNiMAX "lli"
#define SCNiPTR "lli"
#define SCNo8 "hho"
#define SCNo16 "ho"
#define SCNo32 "lo"
#define SCNo64 "llo"
#define SCNoFAST8 "hho"
#define SCNoFAST16 "ho"
#define SCNoFAST32 "lo"
#define SCNoFAST64 "llo"
#define SCNoLEAST8 "hho"
#define SCNoLEAST16 "ho"
#define SCNoLEAST32 "lo"
#define SCNoLEAST64 "llo"
#define SCNoMAX "llo"
#define SCNoPTR "llo"
#define SCNu8 "hhu"
#define SCNu16 "hu"
#define SCNu32 "lu"
#define SCNu64 "llu"
#define SCNuFAST8 "hhu"
#define SCNuFAST16 "hu"
#define SCNuFAST32 "lu"
#define SCNuFAST64 "llu"
#define SCNuLEAST8 "hhu"
#define SCNuLEAST16 "hu"
#define SCNuLEAST32 "lu"
#define SCNuLEAST64 "llu"
#define SCNuMAX "llu"
#define SCNuPTR "llu"
#define SCNx8 "hhx"
#define SCNx16 "hx"
#define SCNx32 "lx"
#define SCNx64 "llx"
#define SCNxFAST8 "hhx"
#define SCNxFAST16 "hx"
#define SCNxFAST32 "lx"
#define SCNxFAST64 "llx"
#define SCNxLEAST8 "hhx"
#define SCNxLEAST16 "hx"
#define SCNxLEAST32 "lx"
#define SCNxLEAST64 "llx"
#define SCNxMAX "llx"
#define SCNxPTR "llx"Copy to clipboard
## `imaxabs`,
`abs`
intmax_t imaxabs(intmax_t i);
intmax_t abs(intmax_t i); [C++ only]Copy to clipboard
The function returns the absolute value of
`i`, `|i|`.
## `imaxdiv`,
`div`
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
imaxdiv_t div(intmax_t numer, intmax_t denom); [C++ only]Copy to clipboard
The function divides `numer` by `denom` and returns
both quotient and remainder in the structure
result `x`, if the quotient can be represented.
The structure member `x.quot`
is the algebraic quotient truncated toward zero.
The structure member `x.rem` is the remainder, such
that `numer == x.quot*denom + x.rem`.
## `imaxdiv_t`
typedef struct {
intmax_t quot, rem;
} imaxdiv_t;Copy to clipboard
The type is the structure type returned by the function
[`imaxdiv`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_inttypes.html#imaxdiv).
The structure contains members that represent the quotient
(`quot`) and remainder (`rem`)
of a signed integer division with operands of type *intmax\_t.* The
members shown above can occur in either order.
## `PRId8`,
`PRId16`,
`PRId32`,
`PRId64`
#define PRId8 "hhd"
#define PRId16 "hd"
#define PRId32 "ld"
#define PRId64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int8_t),
[`int16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int16_t),
[`int32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int32_t), or
[`int64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIdFAST8`,
`PRIdFAST16`,
`PRIdFAST32`,
`PRIdFAST64`
#define PRIdFAST8 "hhd"
#define PRIdFAST16 "hd"
#define PRIdFAST32 "ld"
#define PRIdFAST64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast8_t),
[`int_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast16_t),
[`int_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast32_t), or
[`int_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIdLEAST8`,
`PRIdLEAST16`,
`PRIdLEAST32`,
`PRIdLEAST64`
#define PRIdLEAST8 "hhd"
#define PRIdLEAST16 "hd"
#define PRIdLEAST32 "ld"
#define PRIdLEAST64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least8_t),
[`int_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least16_t),
[`int_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least32_t), or
[`int_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIdMAX`
#define PRIdMAX "lld"Copy to clipboard
The macro expands to a string literal suitable
for use as a `d` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intmax_t).
Note that the definition shown here is merely representative.
## `PRIdPTR`
#define PRIdPTR "lld"Copy to clipboard
The macro expands to a string literal suitable
for use as a `d` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intptr_t).
Note that the definition shown here is merely representative.
## `PRIi8`,
`PRIi16`,
`PRIi32`,
`PRIi64`
#define PRIi8 "hhi"
#define PRIi16 "hi"
#define PRIi32 "li"
#define PRIi64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int8_t),
[`int16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int16_t),
[`int32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int32_t), or
[`int64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIiFAST8`,
`PRIiFAST16`,
`PRIiFAST32`,
`PRIiFAST64`
#define PRIiFAST8 "hhi"
#define PRIiFAST16 "hi"
#define PRIiFAST32 "li"
#define PRIiFAST64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast8_t),
[`int_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast16_t),
[`int_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast32_t), or
[`int_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIiLEAST8`,
`PRIiLEAST16`,
`PRIiLEAST32`,
`PRIiLEAST64`
#define PRIiLEAST8 "hhi"
#define PRIiLEAST16 "hi"
#define PRIiLEAST32 "li"
#define PRIiLEAST64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least8_t),
[`int_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least16_t),
[`int_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least32_t), or
[`int_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIiMAX`
#define PRIiMAX "lli"Copy to clipboard
The macro expands to a string literal suitable
for use as an `i` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intmax_t).
Note that the definition shown here is merely representative.
## `PRIiPTR`
#define PRIiPTR "lli"Copy to clipboard
The macro expands to a string literal suitable
for use as an `i` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intptr_t).
Note that the definition shown here is merely representative.
## `PRIo8`,
`PRIo16`,
`PRIo32`,
`PRIo64`
#define PRIo8 "hho"
#define PRIo16 "ho"
#define PRIo32 "lo"
#define PRIo64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIoFAST8`,
`PRIoFAST16`,
`PRIoFAST32`,
`PRIoFAST64`
#define PRIoFAST8 "hho"
#define PRIoFAST16 "ho"
#define PRIoFAST32 "lo"
#define PRIoFAST64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIoLEAST8`,
`PRIoLEAST16`,
`PRIoLEAST32`,
`PRIoLEAST64`
#define PRIoLEAST8 "hho"
#define PRIoLEAST16 "ho"
#define PRIoLEAST32 "lo"
#define PRIoLEAST64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIoMAX`
#define PRIoMAX "llo"Copy to clipboard
The macro expands to a string literal suitable
for use as an `o` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `PRIoPTR`
#define PRIoPTR "llo"Copy to clipboard
The macro expands to a string literal suitable
for use as an `o` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `PRIu8`,
`PRIu16`,
`PRIu32`,
`PRIu64`
#define PRIu8 "hhu"
#define PRIu16 "hu"
#define PRIu32 "lu"
#define PRIu64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIuFAST8`,
`PRIuFAST16`,
`PRIuFAST32`,
`PRIuFAST64`
#define PRIuFAST8 "hhu"
#define PRIuFAST16 "hu"
#define PRIuFAST32 "lu"
#define PRIuFAST64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIuLEAST8`,
`PRIuLEAST16`,
`PRIuLEAST32`,
`PRIuLEAST64`
#define PRIuLEAST8 "hhu"
#define PRIuLEAST16 "hu"
#define PRIuLEAST32 "lu"
#define PRIuLEAST64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIuMAX`
#define PRIuMAX "llu"Copy to clipboard
The macro expands to a string literal suitable
for use as a `u` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `PRIuPTR`
#define PRIuPTR "llu"Copy to clipboard
The macro expands to a string literal suitable
for use as a `u` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `PRIx8`,
`PRIx16`,
`PRIx32`,
`PRIx64`
#define PRIx8 "hhx"
#define PRIx16 "hx"
#define PRIx32 "lx"
#define PRIx64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIxFAST8`,
`PRIxFAST16`,
`PRIxFAST32`,
`PRIxFAST64`
#define PRIxFAST8 "hhx"
#define PRIxFAST16 "hx"
#define PRIxFAST32 "lx"
#define PRIxFAST64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIxLEAST8`,
`PRIxLEAST16`,
`PRIxLEAST32`,
`PRIxLEAST64`
#define PRIxLEAST8 "hhx"
#define PRIxLEAST16 "hx"
#define PRIxLEAST32 "lx"
#define PRIxLEAST64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIxMAX`
#define PRIxMAX "llx"Copy to clipboard
The macro expands to a string literal suitable
for use as an `x` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `PRIxPTR`
#define PRIxPTR "llx"Copy to clipboard
The macro expands to a string literal suitable
for use as an `x` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `PRIX8`,
`PRIX16`,
`PRIX32`,
`PRIX64`
#define PRIX8 "hhX"
#define PRIX16 "hX"
#define PRIX32 "lX"
#define PRIX64 "llX"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `X` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIXFAST8`,
`PRIXFAST16`,
`PRIXFAST32`,
`PRIXFAST64`
#define PRIXFAST8 "hhX"
#define PRIXFAST16 "hX"
#define PRIXFAST32 "lX"
#define PRIXFAST64 "llX"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `X` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIXLEAST8`,
`PRIXLEAST16`,
`PRIXLEAST32`,
`PRIXLEAST64`
#define PRIXLEAST8 "hhX"
#define PRIXLEAST16 "hX"
#define PRIXLEAST32 "lX"
#define PRIXLEAST64 "llX"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `X` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `PRIXMAX`
#define PRIXMAX "llX"Copy to clipboard
The macro expands to a string literal suitable
for use as an `X` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `PRIXPTR`
#define PRIXPTR "llX"Copy to clipboard
The macro expands to a string literal suitable
for use as an `X` print conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `SCNd8`,
`SCNd16`,
`SCNd32`,
`SCNd64`
#define SCNd8 "hhd"
#define SCNd16 "hd"
#define SCNd32 "ld"
#define SCNd64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int8_t),
[`int16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int16_t),
[`int32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int32_t), or
[`int64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNdFAST8`,
`SCNdFAST16`,
`SCNdFAST32`,
`SCNdFAST64`
#define SCNdFAST8 "hhd"
#define SCNdFAST16 "hd"
#define SCNdFAST32 "ld"
#define SCNdFAST64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast8_t),
[`int_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast16_t),
[`int_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast32_t), or
[`int_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNdLEAST8`,
`SCNdLEAST16`,
`SCNdLEAST32`,
`SCNdLEAST64`
#define SCNdLEAST8 "hhd"
#define SCNdLEAST16 "hd"
#define SCNdLEAST32 "ld"
#define SCNdLEAST64 "lld"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `d` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least8_t),
[`int_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least16_t),
[`int_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least32_t), or
[`int_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNdMAX`
#define SCNdMAX "lld"Copy to clipboard
The macro expands to a string literal suitable
for use as a `d` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intmax_t).
Note that the definition shown here is merely representative.
## `SCNdPTR`
#define SCNdPTR "lld"Copy to clipboard
The macro expands to a string literal suitable
for use as a `d` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intptr_t).
Note that the definition shown here is merely representative.
## `SCNi8`,
`SCNi16`,
`SCNi32`,
`SCNi64`
#define SCNi8 "hhi"
#define SCNi16 "hi"
#define SCNi32 "li"
#define SCNi64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int8_t),
[`int16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int16_t),
[`int32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int32_t), or
[`int64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNiFAST8`,
`SCNiFAST16`,
`SCNiFAST32`,
`SCNiFAST64`
#define SCNiFAST8 "hhi"
#define SCNiFAST16 "hi"
#define SCNiFAST32 "li"
#define SCNiFAST64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast8_t),
[`int_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast16_t),
[`int_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast32_t), or
[`int_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNiLEAST8`,
`SCNiLEAST16`,
`SCNiLEAST32`,
`SCNiLEAST64`
#define SCNiLEAST8 "hhi"
#define SCNiLEAST16 "hi"
#define SCNiLEAST32 "li"
#define SCNiLEAST64 "lli"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `i` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`int_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least8_t),
[`int_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least16_t),
[`int_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least32_t), or
[`int_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#int_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNiMAX`
#define SCNiMAX "lli"Copy to clipboard
The macro expands to a string literal suitable
for use as an `i` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intmax_t).
Note that the definition shown here is merely representative.
## `SCNiPTR`
#define SCNiPTR "lli"Copy to clipboard
The macro expands to a string literal suitable
for use as an `i` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`intptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#intptr_t).
Note that the definition shown here is merely representative.
## `SCNo8`,
`SCNo16`,
`SCNo32`,
`SCNo64`
#define SCNo8 "hho"
#define SCNo16 "ho"
#define SCNo32 "lo"
#define SCNo64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNoFAST8`,
`SCNoFAST16`,
`SCNoFAST32`,
`SCNoFAST64`
#define SCNoFAST8 "hho"
#define SCNoFAST16 "ho"
#define SCNoFAST32 "lo"
#define SCNoFAST64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNoLEAST8`,
`SCNoLEAST16`,
`SCNoLEAST32`,
`SCNoLEAST64`
#define SCNoLEAST8 "hho"
#define SCNoLEAST16 "ho"
#define SCNoLEAST32 "lo"
#define SCNoLEAST64 "llo"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `o` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNoMAX`
#define SCNoMAX "llo"Copy to clipboard
The macro expands to a string literal suitable
for use as an `o` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `SCNoPTR`
#define SCNoPTR "llo"Copy to clipboard
The macro expands to a string literal suitable
for use as an `o` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `SCNu8`,
`SCNu16`,
`SCNu32`,
`SCNu64`
#define SCNu8 "hhu"
#define SCNu16 "hu"
#define SCNu32 "lu"
#define SCNu64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNuFAST8`,
`SCNuFAST16`,
`SCNuFAST32`,
`SCNuFAST64`
#define SCNuFAST8 "hhu"
#define SCNuFAST16 "hu"
#define SCNuFAST32 "lu"
#define SCNuFAST64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNuLEAST8`,
`SCNuLEAST16`,
`SCNuLEAST32`,
`SCNuLEAST64`
#define SCNuLEAST8 "hhu"
#define SCNuLEAST16 "hu"
#define SCNuLEAST32 "lu"
#define SCNuLEAST64 "llu"Copy to clipboard
The macros each expand to a string literal suitable
for use as a `u` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNuMAX`
#define SCNuMAX "llu"Copy to clipboard
The macro expands to a string literal suitable
for use as a `u` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `SCNuPTR`
#define SCNuPTR "llu"Copy to clipboard
The macro expands to a string literal suitable
for use as a `u` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `SCNx8`,
`SCNx16`,
`SCNx32`,
`SCNx64`
#define SCNx8 "hhx"
#define SCNx16 "hx"
#define SCNx32 "lx"
#define SCNx64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint8_t),
[`uint16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint16_t),
[`uint32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint32_t), or
[`uint64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNxFAST8`,
`SCNxFAST16`,
`SCNxFAST32`,
`SCNxFAST64`
#define SCNxFAST8 "hhx"
#define SCNxFAST16 "hx"
#define SCNxFAST32 "lx"
#define SCNxFAST64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_fast8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast8_t),
[`uint_fast16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast16_t),
[`uint_fast32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast32_t), or
[`uint_fast64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_fast64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNxLEAST8`,
`SCNxLEAST16`,
`SCNxLEAST32`,
`SCNxLEAST64`
#define SCNxLEAST8 "hhx"
#define SCNxLEAST16 "hx"
#define SCNxLEAST32 "lx"
#define SCNxLEAST64 "llx"Copy to clipboard
The macros each expand to a string literal suitable
for use as an `x` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uint_least8_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least8_t),
[`uint_least16_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least16_t),
[`uint_least32_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least32_t), or
[`uint_least64_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uint_least64_t), respectively.
Note that the definitions shown here are merely representative.
## `SCNxMAX`
#define SCNxMAX "llx"Copy to clipboard
The macro expands to a string literal suitable
for use as an `x` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintmax_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintmax_t).
Note that the definition shown here is merely representative.
## `SCNxPTR`
#define SCNxPTR "llx"Copy to clipboard
The macro expands to a string literal suitable
for use as an `x` scan conversion specificier,
plus any needed qualifiers, to convert values of the types
[`uintptr_t`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#uintptr_t).
Note that the definition shown here is merely representative.
## `strtoimax`
intmax_t strtoimax(const char *restrict s, char **restrict endptr,
int base);Copy to clipboard
The function converts the initial characters of the string `s`
to an equivalent value `x` of type *intmax\_t.*
If `endptr` is not a null pointer,
it stores a pointer to the unconverted remainder
of the string in `*endptr`.
The function then returns `x`.
`strtoimax` converts strings exactly as does
[`strtol`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdlib.html#strtol).
If the string `s` does not match a valid pattern, the value
stored in `*endptr` is `s`,
and `x` is zero. If the
equivalent value is too large to represent as type *intmax\_t,*
`strtoimax` stores the value of
[`ERANGE`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#ERANGE) in
[`errno`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#errno)
and returns either
[`INTMAX_MAX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#INTMAX_MAX),
if `x` is positive, or
[`INTMAX_MIN`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#INTMAX_MIN),
if `x` is negative.
## `strtoumax`
uintmax_t strtoumax(const char *restrict s, char **restrict endptr,
int base);Copy to clipboard
The function converts the initial characters of the string `s`
to an equivalent value `x` of type *uintmax\_t.*
If `endptr` is not a null pointer,
it stores a pointer to the unconverted remainder
of the string in `*endptr`.
The function then returns `x`.
`strtoumax` converts strings exactly as does
[`strtoul`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdlib.html#strtoul).
If the string `s` does not match a valid pattern, the value
stored in `*endptr` is `s`,
and `x` is zero. If the
equivalent value is too large to represent as type *uintmax\_t,*
`strtoumax` stores the value of
[`ERANGE`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#ERANGE) in
[`errno`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#errno) and returns
[`UINTMAX_MAX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#UINTMAX_MAX).
## `wcstoimax`
intmax_t wcstimax(const wchar_t *restrict s, wchar_t **restrict endptr,
int base);Copy to clipboard
The function converts the initial wide characters of the wide
string `s` to an equivalent value `x`
of type *intmax\_t.* If `endptr` is not a null pointer,
the function stores a pointer to the unconverted remainder
of the wide string in `*endptr`.
The function then returns `x`.
The initial wide characters of the wide string `s` must
match the same pattern as recognized by the function
[`strtol`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdlib.html#strtol),
with the same `base` argument,
where each wide character `wc` is converted as if by calling
`wctob(wc))`.
If the wide string `s` matches this pattern,
`wcstoimax` converts strings exactly as does
`strtol`, with the same `base` argument,
for the converted sequence.
If the wide string `s` does not match a valid pattern,
the value stored in `*endptr` is `s`,
and `x` is zero. If the equivalent value is too large
in magnitude to represent as type *intmax\_t,*
`wcstoimax` stores the value of
[`ERANGE`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#ERANGE) in
[`errno`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#errno)
and returns either
[`INTMAX_MAX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#INTMAX_MAX),
if `x` is positive, or
[`INTMAX_MIN`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#INTMAX_MIN),
if `x` is negative.
## `wcstoumax`
uintmax_t wcstoumax(const wchar_t *restrict s,
wchar_t **restrict endptr, int base);Copy to clipboard
The function converts the initial wide characters of the wide
string `s` to an equivalent value `x`
of type *uintmax\_t.* If `endptr` is not a null pointer,
the function stores a pointer to the unconverted remainder
of the wide string in `*endptr`.
The function then returns `x`.
The initial wide characters of the wide string `s` must
match the same pattern as recognized by the function
[`strtol`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdlib.html#strtol),
with the same `base` argument,
where each wide character `wc` is converted as if by calling
`wctob(wc))`.
If the wide string `s` matches this pattern,
`wcstoumax` converts strings exactly as does
`strtol`, with the same `base` argument,
for the converted sequence.
If the wide string `s` does not match a valid pattern,
the value stored in `*endptr` is `s`,
and `x` is zero. If the equivalent value is too large
to represent as type *uintmax\_t,*
`wcstoimax` stores the value of
[`ERANGE`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#ERANGE) in
[`errno`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_errno.html#errno)
and returns
[`UINTMAX_MAX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_stdint.html#UINTMAX_MAX).
* * *
See also the
**[Table of Contents](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_index.html#Table%20of%20Contents)** and the
**[Index](https://docs.qualcomm.com/doc/80-N3040-23/topic/_c_index.html)**.
*[Copyright](https://docs.qualcomm.com/doc/80-N3040-23/topic/c_crit_pjp.html) © 1992-2006by P.J. Plauger. All rights reserved.*
Last Published: Oct 06, 2026
Previous Topic
Next Topic