AVR Libc Home Page AVRs AVR Libc Development Pages
Main Page User Manual Reference FAQ Example Projects

<inttypes.h>: Integer Type conversions

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 PRIdPTRPRId16

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 PRIiPTRPRIi16

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 PRIoPTRPRIo16

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 PRIuPTRPRIu16

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 PRIxPTRPRIx16

hexadecimal printf format for uintptr_t

#define PRIXPTRPRIX16

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 SCNdPTRSCNd16

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 SCNiPTRSCNi16

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 SCNoPTRSCNo16

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 SCNuPTRSCNu16

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 SCNxPTRSCNx16

hexadecimal scanf format for uintptr_t

Typedef Documentation

typedef int32_t int_farptr_t

signed integer type that can hold a pointer >> 64 KB

typedef uint32_t uint_farptr_t

unsigned integer type that can hold a pointer >> 64 KB