---
name: "stdint"
section: "7"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/stdint"
---

# stdint(7)

standard integer types

## NAME

**stdint** – standard integer types

## SYNOPSIS

**#include \<stdint.h\>**

## DESCRIPTION

The ⟨stdint.h⟩ header provides source-portable integer types of a specific size, smallest memory footprint with a minimum size, fastest access speed with a minimum size, largest integer size, and those capable of storing pointers.

The types *int8\_t*, *int16\_t*, *int32\_t*, and *int64\_t* provide a signed integer type of width 8, 16, 32, or 64 bits, respectively. The types *uint8\_t*, *uint16\_t*, *uint32\_t*, and *uint64\_t* provide an unsigned integer type of width 8, 16, 32, or 64 bits, respectively. These integer types should be used when a specific size is required.

The types *int\_fast8\_t*, *int\_fast16\_t*, *int\_fast32\_t*, and *int\_fast64\_t* provide the fastest signed integer type with a width of at least 8, 16, 32, or 64 bits, respectively. The types *uint\_fast8\_t*, *uint\_fast16\_t*, *uint\_fast32\_t*, and *uint\_fast64\_t* provide the fastest unsigned integer type with a width of at least 8, 16, 32, or 64 bits, respectively. These types should be used when access speed is paramount, and when a specific size is not required.

The types *int\_least8\_t*, *int\_least16\_t*, *int\_least32\_t*, and *int\_least64\_t* provide the smallest memory footprint signed integer type with a width of at least 8, 16, 32, or 64 bits, respectively. The types *uint\_least8\_t*, *uint\_least16\_t*, *uint\_least32\_t*, and *uint\_least64\_t* provide the smallest memory footprint unsigned integer type with a width of at least 8, 16, 32, or 64 bits, respectively. These types should be used when memory storage is of concern, and when a specific size is not required.

The type *intmax\_t* provides a signed integer type large enough to hold any other signed integer. The type *uintmax\_t* provides an unsigned integer type large enough to hold any other unsigned integer. These types are generally the largest signed and unsigned integer types available on a specific architecture.

The type *intptr\_t* provides a signed integer type with the ability to hold a pointer to *void*, that can later be converted back to a pointer to *void*.

The type *uintptr\_t* provides an unsigned integer type with the ability to hold a pointer to *void*, that can later be converted back to a pointer to *void*.

Additionally, the ⟨stdint.h⟩ header defines some macros, but none of them are documented here.

## STANDARDS

The ⟨stdint.h⟩ header conforms to ISO/IEC 9899:1999 (“ISO C99”) and IEEE Std 1003.1-2001 (“POSIX.1”).

## HISTORY

The ⟨stdint.h⟩ header was first introduced in FreeBSD 5.0.
