---
name: "avr_inttypes"
section: "3avr"
platform: "linux"
package: "avr-libc"
version: "1:2.2.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/avr_inttypes"
---

# avr\_inttypes(3avr)

\<inttypes.h\>: Integer Type conversions

## NAME

avr\_inttypes - \<inttypes.h\>: Integer Type conversions

## SYNOPSIS

### Far pointers for memory access \> 64K

typedef **int32\_t** **int\_farptr\_t**\
 typedef **uint32\_t** **uint\_farptr\_t**\

### macros for printf and scanf format specifiers

For C++, these are only included if \_\_STDC\_LIMIT\_MACROS is defined before including \<**inttypes.h**\>.  #define **PRId8**   'd'\
 \#define **PRIdLEAST8**   'd'\
 \#define **PRIdFAST8**   'd'\
 \#define **PRIi8**   'i'\
 \#define **PRIiLEAST8**   'i'\
 \#define **PRIiFAST8**   'i'\
 \#define **PRId16**   'd'\
 \#define **PRIdLEAST16**   'd'\
 \#define **PRIdFAST16**   'd'\
 \#define **PRIi16**   'i'\
 \#define **PRIiLEAST16**   'i'\
 \#define **PRIiFAST16**   'i'\
 \#define **PRId32**   'ld'\
 \#define **PRIdLEAST32**   'ld'\
 \#define **PRIdFAST32**   'ld'\
 \#define **PRIi32**   'li'\
 \#define **PRIiLEAST32**   'li'\
 \#define **PRIiFAST32**   'li'\
 \#define **PRIdPTR**   **PRId16**\
 \#define **PRIiPTR**   **PRIi16**\
 \#define **PRIo8**   'o'\
 \#define **PRIoLEAST8**   'o'\
 \#define **PRIoFAST8**   'o'\
 \#define **PRIu8**   'u'\
 \#define **PRIuLEAST8**   'u'\
 \#define **PRIuFAST8**   'u'\
 \#define **PRIx8**   'x'\
 \#define **PRIxLEAST8**   'x'\
 \#define **PRIxFAST8**   'x'\
 \#define **PRIX8**   'X'\
 \#define **PRIXLEAST8**   'X'\
 \#define **PRIXFAST8**   'X'\
 \#define **PRIo16**   'o'\
 \#define **PRIoLEAST16**   'o'\
 \#define **PRIoFAST16**   'o'\
 \#define **PRIu16**   'u'\
 \#define **PRIuLEAST16**   'u'\
 \#define **PRIuFAST16**   'u'\
 \#define **PRIx16**   'x'\
 \#define **PRIxLEAST16**   'x'\
 \#define **PRIxFAST16**   'x'\
 \#define **PRIX16**   'X'\
 \#define **PRIXLEAST16**   'X'\
 \#define **PRIXFAST16**   'X'\
 \#define **PRIo32**   'lo'\
 \#define **PRIoLEAST32**   'lo'\
 \#define **PRIoFAST32**   'lo'\
 \#define **PRIu32**   'lu'\
 \#define **PRIuLEAST32**   'lu'\
 \#define **PRIuFAST32**   'lu'\
 \#define **PRIx32**   'lx'\
 \#define **PRIxLEAST32**   'lx'\
 \#define **PRIxFAST32**   'lx'\
 \#define **PRIX32**   'lX'\
 \#define **PRIXLEAST32**   'lX'\
 \#define **PRIXFAST32**   'lX'\
 \#define **PRIoPTR**   **PRIo16**\
 \#define **PRIuPTR**   **PRIu16**\
 \#define **PRIxPTR**   **PRIx16**\
 \#define **PRIXPTR**   **PRIX16**\
 \#define **SCNd8**   'hhd'\
 \#define **SCNdLEAST8**   'hhd'\
 \#define **SCNdFAST8**   'hhd'\
 \#define **SCNi8**   'hhi'\
 \#define **SCNiLEAST8**   'hhi'\
 \#define **SCNiFAST8**   'hhi'\
 \#define **SCNd16**   'd'\
 \#define **SCNdLEAST16**   'd'\
 \#define **SCNdFAST16**   'd'\
 \#define **SCNi16**   'i'\
 \#define **SCNiLEAST16**   'i'\
 \#define **SCNiFAST16**   'i'\
 \#define **SCNd32**   'ld'\
 \#define **SCNdLEAST32**   'ld'\
 \#define **SCNdFAST32**   'ld'\
 \#define **SCNi32**   'li'\
 \#define **SCNiLEAST32**   'li'\
 \#define **SCNiFAST32**   'li'\
 \#define **SCNdPTR**   **SCNd16**\
 \#define **SCNiPTR**   **SCNi16**\
 \#define **SCNo8**   'hho'\
 \#define **SCNoLEAST8**   'hho'\
 \#define **SCNoFAST8**   'hho'\
 \#define **SCNu8**   'hhu'\
 \#define **SCNuLEAST8**   'hhu'\
 \#define **SCNuFAST8**   'hhu'\
 \#define **SCNx8**   'hhx'\
 \#define **SCNxLEAST8**   'hhx'\
 \#define **SCNxFAST8**   'hhx'\
 \#define **SCNo16**   'o'\
 \#define **SCNoLEAST16**   'o'\
 \#define **SCNoFAST16**   'o'\
 \#define **SCNu16**   'u'\
 \#define **SCNuLEAST16**   'u'\
 \#define **SCNuFAST16**   'u'\
 \#define **SCNx16**   'x'\
 \#define **SCNxLEAST16**   'x'\
 \#define **SCNxFAST16**   'x'\
 \#define **SCNo32**   'lo'\
 \#define **SCNoLEAST32**   'lo'\
 \#define **SCNoFAST32**   'lo'\
 \#define **SCNu32**   'lu'\
 \#define **SCNuLEAST32**   'lu'\
 \#define **SCNuFAST32**   'lu'\
 \#define **SCNx32**   'lx'\
 \#define **SCNxLEAST32**   'lx'\
 \#define **SCNxFAST32**   'lx'\
 \#define **SCNoPTR**   **SCNo16**\
 \#define **SCNuPTR**   **SCNu16**\
 \#define **SCNxPTR**   **SCNx16**\

## Detailed Description

```
#include <inttypes.h>
```

This header file includes the exact-width integer definitions from `<`**stdint.h**`>`**, and extends them with additional facilities provided by the implementation.**

**Currently, the extensions include two additional integer types that could hold a 'far' pointer (i.e. a code pointer that can address more than 64 KB), as well as standard names for all printf and scanf formatting options that are supported by the \<stdio.h\>: Standard IO facilities. As the library does not support the full range of conversion specifiers from ISO 9899:1999, only those conversions that are actually implemented will be listed here.**

**The idea behind these conversion macros is that, for each of the types defined by \<stdint.h\>, a macro will be supplied that portably allows formatting an object of that type in printf() or scanf() operations. Example:**

```
#include <inttypes.h>
uint8_t smallval;
int32_t longval;
...
printf("The hexadecimal value of smallval is %" PRIx8
       ", the decimal value of longval is %" PRId32 ".\n",
   smallval, longval);
```

## Macro Definition Documentation

### #define PRId16 'd'

**decimal printf format for int16\_t**

### #define PRId32 'ld'

**decimal printf format for int32\_t**

### #define PRId8 'd'

**decimal printf format for int8\_t**

### #define PRIdFAST16 'd'

**decimal printf format for int\_fast16\_t**

### #define PRIdFAST32 'ld'

**decimal printf format for int\_fast32\_t**

### #define PRIdFAST8 'd'

**decimal printf format for int\_fast8\_t**

### #define PRIdLEAST16 'd'

**decimal printf format for int\_least16\_t**

### #define PRIdLEAST32 'ld'

**decimal printf format for int\_least32\_t**

### #define PRIdLEAST8 'd'

**decimal printf format for int\_least8\_t**

### #define PRIdPTR PRId16

**decimal printf format for intptr\_t**

### #define PRIi16 'i'

**integer printf format for int16\_t**

### #define PRIi32 'li'

**integer printf format for int32\_t**

### #define PRIi8 'i'

**integer printf format for int8\_t**

### #define PRIiFAST16 'i'

**integer printf format for int\_fast16\_t**

### #define PRIiFAST32 'li'

**integer printf format for int\_fast32\_t**

### #define PRIiFAST8 'i'

**integer printf format for int\_fast8\_t**

### #define PRIiLEAST16 'i'

**integer printf format for int\_least16\_t**

### #define PRIiLEAST32 'li'

**integer printf format for int\_least32\_t**

### #define PRIiLEAST8 'i'

**integer printf format for int\_least8\_t**

### #define PRIiPTR PRIi16

**integer printf format for intptr\_t**

### #define PRIo16 'o'

**octal printf format for uint16\_t**

### #define PRIo32 'lo'

**octal printf format for uint32\_t**

### #define PRIo8 'o'

**octal printf format for uint8\_t**

### #define PRIoFAST16 'o'

**octal printf format for uint\_fast16\_t**

### #define PRIoFAST32 'lo'

**octal printf format for uint\_fast32\_t**

### #define PRIoFAST8 'o'

**octal printf format for uint\_fast8\_t**

### #define PRIoLEAST16 'o'

**octal printf format for uint\_least16\_t**

### #define PRIoLEAST32 'lo'

**octal printf format for uint\_least32\_t**

### #define PRIoLEAST8 'o'

**octal printf format for uint\_least8\_t**

### #define PRIoPTR PRIo16

**octal printf format for uintptr\_t**

### #define PRIu16 'u'

**decimal printf format for uint16\_t**

### #define PRIu32 'lu'

**decimal printf format for uint32\_t**

### #define PRIu8 'u'

**decimal printf format for uint8\_t**

### #define PRIuFAST16 'u'

**decimal printf format for uint\_fast16\_t**

### #define PRIuFAST32 'lu'

**decimal printf format for uint\_fast32\_t**

### #define PRIuFAST8 'u'

**decimal printf format for uint\_fast8\_t**

### #define PRIuLEAST16 'u'

**decimal printf format for uint\_least16\_t**

### #define PRIuLEAST32 'lu'

**decimal printf format for uint\_least32\_t**

### #define PRIuLEAST8 'u'

**decimal printf format for uint\_least8\_t**

### #define PRIuPTR PRIu16

**decimal printf format for uintptr\_t**

### #define PRIx16 'x'

**hexadecimal printf format for uint16\_t**

### #define PRIX16 'X'

**uppercase hexadecimal printf format for uint16\_t**

### #define PRIx32 'lx'

**hexadecimal printf format for uint32\_t**

### #define PRIX32 'lX'

**uppercase hexadecimal printf format for uint32\_t**

### #define PRIx8 'x'

**hexadecimal printf format for uint8\_t**

### #define PRIX8 'X'

**uppercase hexadecimal printf format for uint8\_t**

### #define PRIxFAST16 'x'

**hexadecimal printf format for uint\_fast16\_t**

### #define PRIXFAST16 'X'

**uppercase hexadecimal printf format for uint\_fast16\_t**

### #define PRIxFAST32 'lx'

**hexadecimal printf format for uint\_fast32\_t**

### #define PRIXFAST32 'lX'

**uppercase hexadecimal printf format for uint\_fast32\_t**

### #define PRIxFAST8 'x'

**hexadecimal printf format for uint\_fast8\_t**

### #define PRIXFAST8 'X'

**uppercase hexadecimal printf format for uint\_fast8\_t**

### #define PRIxLEAST16 'x'

**hexadecimal printf format for uint\_least16\_t**

### #define PRIXLEAST16 'X'

**uppercase hexadecimal printf format for uint\_least16\_t**

### #define PRIxLEAST32 'lx'

**hexadecimal printf format for uint\_least32\_t**

### #define PRIXLEAST32 'lX'

**uppercase hexadecimal printf format for uint\_least32\_t**

### #define PRIxLEAST8 'x'

**hexadecimal printf format for uint\_least8\_t**

### #define PRIXLEAST8 'X'

**uppercase hexadecimal printf format for uint\_least8\_t**

### #define PRIxPTR PRIx16

**hexadecimal printf format for uintptr\_t**

### #define PRIXPTR PRIX16

**uppercase hexadecimal printf format for uintptr\_t**

### #define SCNd16 'd'

**decimal scanf format for int16\_t**

### #define SCNd32 'ld'

**decimal scanf format for int32\_t**

### #define SCNd8 'hhd'

**decimal scanf format for int8\_t**

### #define SCNdFAST16 'd'

**decimal scanf format for int\_fast16\_t**

### #define SCNdFAST32 'ld'

**decimal scanf format for int\_fast32\_t**

### #define SCNdFAST8 'hhd'

**decimal scanf format for int\_fast8\_t**

### #define SCNdLEAST16 'd'

**decimal scanf format for int\_least16\_t**

### #define SCNdLEAST32 'ld'

**decimal scanf format for int\_least32\_t**

### #define SCNdLEAST8 'hhd'

**decimal scanf format for int\_least8\_t**

### #define SCNdPTR SCNd16

**decimal scanf format for intptr\_t**

### #define SCNi16 'i'

**generic-integer scanf format for int16\_t**

### #define SCNi32 'li'

**generic-integer scanf format for int32\_t**

### #define SCNi8 'hhi'

**generic-integer scanf format for int8\_t**

### #define SCNiFAST16 'i'

**generic-integer scanf format for int\_fast16\_t**

### #define SCNiFAST32 'li'

**generic-integer scanf format for int\_fast32\_t**

### #define SCNiFAST8 'hhi'

**generic-integer scanf format for int\_fast8\_t**

### #define SCNiLEAST16 'i'

**generic-integer scanf format for int\_least16\_t**

### #define SCNiLEAST32 'li'

**generic-integer scanf format for int\_least32\_t**

### #define SCNiLEAST8 'hhi'

**generic-integer scanf format for int\_least8\_t**

### #define SCNiPTR SCNi16

**generic-integer scanf format for intptr\_t**

### #define SCNo16 'o'

**octal scanf format for uint16\_t**

### #define SCNo32 'lo'

**octal scanf format for uint32\_t**

### #define SCNo8 'hho'

**octal scanf format for uint8\_t**

### #define SCNoFAST16 'o'

**octal scanf format for uint\_fast16\_t**

### #define SCNoFAST32 'lo'

**octal scanf format for uint\_fast32\_t**

### #define SCNoFAST8 'hho'

**octal scanf format for uint\_fast8\_t**

### #define SCNoLEAST16 'o'

**octal scanf format for uint\_least16\_t**

### #define SCNoLEAST32 'lo'

**octal scanf format for uint\_least32\_t**

### #define SCNoLEAST8 'hho'

**octal scanf format for uint\_least8\_t**

### #define SCNoPTR SCNo16

**octal scanf format for uintptr\_t**

### #define SCNu16 'u'

**decimal scanf format for uint16\_t**

### #define SCNu32 'lu'

**decimal scanf format for uint32\_t**

### #define SCNu8 'hhu'

**decimal scanf format for uint8\_t**

### #define SCNuFAST16 'u'

**decimal scanf format for uint\_fast16\_t**

### #define SCNuFAST32 'lu'

**decimal scanf format for uint\_fast32\_t**

### #define SCNuFAST8 'hhu'

**decimal scanf format for uint\_fast8\_t**

### #define SCNuLEAST16 'u'

**decimal scanf format for uint\_least16\_t**

### #define SCNuLEAST32 'lu'

**decimal scanf format for uint\_least32\_t**

### #define SCNuLEAST8 'hhu'

**decimal scanf format for uint\_least8\_t**

### #define SCNuPTR SCNu16

**decimal scanf format for uintptr\_t**

### #define SCNx16 'x'

**hexadecimal scanf format for uint16\_t**

### #define SCNx32 'lx'

**hexadecimal scanf format for uint32\_t**

### #define SCNx8 'hhx'

**hexadecimal scanf format for uint8\_t**

### #define SCNxFAST16 'x'

**hexadecimal scanf format for uint\_fast16\_t**

### #define SCNxFAST32 'lx'

**hexadecimal scanf format for uint\_fast32\_t**

### #define SCNxFAST8 'hhx'

**hexadecimal scanf format for uint\_fast8\_t**

### #define SCNxLEAST16 'x'

**hexadecimal scanf format for uint\_least16\_t**

### #define SCNxLEAST32 'lx'

**hexadecimal scanf format for uint\_least32\_t**

### #define SCNxLEAST8 'hhx'

**hexadecimal scanf format for uint\_least8\_t**

### #define SCNxPTR SCNx16

**hexadecimal scanf format for uintptr\_t**

## Typedef Documentation

### typedef int32\_t int\_farptr\_t

**signed integer type that can hold a pointer \> 64 KiB**

### typedef uint32\_t uint\_farptr\_t

**unsigned integer type that can hold a pointer \> 64 KiB, see also pgm\_get\_far\_address()**

## Author

**Generated automatically by Doxygen for AVR-LibC from the source code.**
