INTTYPES(3)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

inttypes(3) from the Library Functions Manual β€” standard fixed-size integer types, bestie. This is your lil guide to the header that makes fixed-size integer formatting portable and cute. πŸ’…

✨ SYNOPSIS ✨

#include <inttypes.h>

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, the <inttypes.h> header describes a set of format specifier macros. Their whole mission? Increase portability both within and across operating systems. It includes the <stdint.h> header and extends it with additional facilities. Slay.

Each of the following macros expands to a character string literal containing the format specifier suitable for use within the format argument of a formatted I/O function such as printf(3). Each macro contains an identifier (PRI or SCN), a conversion specifier, and a possible length modifier. No cap.

The length modifier follows the integer types described in stdint(3):

  • int8_t / uint8_t
  • int16_t / uint16_t
  • int32_t / uint32_t
  • int64_t / uint64_t
  • int_least8_t / uint_least8_t
  • int_least16_t / uint_least16_t
  • int_least32_t / uint_least32_t
  • int_least64_t / uint_least64_t
  • int_fast8_t / uint_fast8_t
  • int_fast16_t / uint_fast16_t
  • int_fast32_t / uint_fast32_t
  • int_fast64_t / uint_fast64_t
  • intmax_t / uintmax_t
  • intptr_t / uintptr_t

The following format specifiers are defined for the fprintf(3) and fscanf(3) families, respectively:

  • PRI?8 / SCN?8
  • PRI?16 / SCN?16
  • PRI?32 / SCN?32
  • PRI?64 / SCN?64
  • PRI?LEAST8 / SCN?LEAST8
  • PRI?LEAST16 / SCN?LEAST16
  • PRI?LEAST32 / SCN?LEAST32
  • PRI?LEAST64 / SCN?LEAST64
  • PRI?FAST8 / SCN?FAST8
  • PRI?FAST16 / SCN?FAST16
  • PRI?FAST32 / SCN?FAST32
  • PRI?FAST64 / SCN?FAST64
  • PRI?MAX / SCN?MAX
  • PRI?PTR / SCN?PTR

The available conversion specifiers β€” the β€œ?” in above β€” are d and i for signed integers and o, u, x, and X for unsigned integers. The X is not available for the fscanf(3) family. Without the length modifier these would correspond with %d, %i, %o, %u, %x, and %X, respectively. 🫢

πŸ“ EXAMPLES πŸ“

The following example demonstrates typical usage:

uint64_t i = 123;

...

(void)printf("i = %"PRIu64"\n", i);

πŸ’œ SEE ALSO πŸ’œ

printf(3), scanf(3), stdint(3)

🌈 STANDARDS 🌈

The <inttypes.h> header conforms to ISO/IEC 9899:1999 (β€œISO C99”) and IEEE Std 1003.1-2001 (β€œPOSIX.1”).

πŸ‘‘ HISTORY πŸ‘‘

The <inttypes.h> header was first introduced in NetBSD 1.6.


πŸ’– Source/version: Debian Β· date: March 21, 2010 Β· page: INTTYPES(3) β€” bye bestie, you ate! πŸŽ€

πŸ“¦ where this page comes from