Spec-Zone.ru › C

Заголовочный файл стандартной библиотеки <stdint.h> (C99)

Этот заголовочный файл является частью библиотеки поддержки типов и предоставляет целочисленные типы фиксированной ширины, а также часть интерфейса числовых пределов.

Типы

Для каждого из следующих имён typedef, помеченных как (необязательно), реализация определяет его тогда и только тогда, когда предоставляет соответствующий тип.

int8_tint16_tint32_tint64_tintN_t
(необязательно)(необязательно)(необязательно)(необязательно)(необязательно)
знаковый целочисленный тип шириной ровно N (обычно 8, 16, 32 или 64) бит, без битов заполнения
(псевдоним типа)
int_fast8_tint_fast16_tint_fast32_tint_fast64_tint_fastN_t
(необязательно)
самый быстрый знаковый целочисленный тип шириной не менее N (обычно 8, 16, 32 или 64) бит
(псевдоним типа)
int_least8_tint_least16_tint_least32_tint_least64_tint_leastN_t
(необязательно)
наименьший знаковый целочисленный тип шириной не менее N (обычно 8, 16, 32 или 64) бит
(если определён intN_t, int_leastN_t обозначает тот же тип)
(псевдоним типа)
intmax_t
знаковый целочисленный тип максимальной ширины, отличный от целочисленного типа с точностью до бита(начиная с C23)
(псевдоним типа)
intptr_t
(необязательно)
знаковый целочисленный тип, отличный от целочисленного типа с точностью до бита(начиная с C23), способный хранить указатель на void
(псевдоним типа)
uint8_tuint16_tuint32_tuint64_tuintN_t
(необязательно)(необязательно)(необязательно)(необязательно)(необязательно)
беззнаковый целочисленный тип шириной ровно N (обычно 8, 16, 32 или 64) бит, без битов заполнения
(псевдоним типа)
uint_fast8_tuint_fast16_tuint_fast32_tuint_fast64_tuint_fastN_t
(необязательно)
самый быстрый беззнаковый целочисленный тип шириной не менее N (обычно 8, 16, 32 или 64) бит
(псевдоним типа)
uint_least8_tuint_least16_tuint_least32_tuint_least64_tuint_leastN_t
(необязательно)
наименьший беззнаковый целочисленный тип шириной не менее N (обычно 8, 16, 32 или 64) бит
(если определён uintN_t, uint_leastN_t обозначает тот же тип)
(псевдоним типа)
uintmax_t
беззнаковый целочисленный тип максимальной ширины, отличный от целочисленного типа с точностью до бита(начиная с C23)
(псевдоним типа)
uintptr_t
(необязательно)
беззнаковый целочисленный тип, отличный от целочисленного типа с точностью до бита(начиная с C23), способный хранить указатель на void
(псевдоним типа)

Макросы-константы

Для каждого из следующих макросов, помеченных как (условно присутствует), реализация определяет его тогда и только тогда, когда она определяет соответствующее имя typedef.

Знаковые целые числа: ширина в битах
INTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа intN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_FASTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа int_fastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_LEASTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа int_leastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INTMAX_WIDTH
(C23)
ширина в битах типа intmax_t
(макрос-константа)
INTPTR_WIDTH
(C23)(условно присутствует)
ширина в битах типа intptr_t
(макрос-константа)
Знаковые целые числа: минимальное значение
INTN_MIN
(условно присутствует)
минимальное значение типа intN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_FASTN_MIN
(условно присутствует)
минимальное значение типа int_fastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_LEASTN_MIN
(условно присутствует)
минимальное значение типа int_leastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INTMAX_MIN
минимальное значение типа intmax_t
(макрос-константа)
INTPTR_MIN
(условно присутствует)
минимальное значение типа intptr_t
(макрос-константа)
Знаковые целые числа: максимальное значение
INTN_MAX
(условно присутствует)
максимальное значение типа intN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_FASTN_MAX
(условно присутствует)
максимальное значение типа int_fastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INT_LEASTN_MAX
(условно присутствует)
максимальное значение типа int_leastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
INTMAX_MAX
максимальное значение типа intmax_t
(макрос-константа)
INTPTR_MAX
(условно присутствует)
максимальное значение типа intptr_t
(макрос-константа)
Беззнаковые целые числа: ширина в битах
UINTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа uintN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINT_FASTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа uint_fastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINT_LEASTN_WIDTH
(C23)(условно присутствует)
ширина в битах типа uint_leastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINTMAX_WIDTH
(C23)
ширина в битах типа uintmax_t
(макрос-константа)
UINTPTR_WIDTH
(C23)(условно присутствует)
ширина в битах типа uintptr_t
(макрос-константа)
Беззнаковые целые числа: максимальное значение
UINTN_MAX
(условно присутствует)
максимальное значение типа uintN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINT_FASTN_MAX
(условно присутствует)
максимальное значение типа uint_fastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINT_LEASTN_MAX
(условно присутствует)
максимальное значение типа uint_leastN_t (N обычно равно 8, 16, 32 или 64)
(макрос-константа)
UINTMAX_MAX
максимальное значение типа uintmax_t
(макрос-константа)
UINTPTR_MAX
(условно присутствует)
максимальное значение типа uintptr_t
(макрос-константа)
Характеристики других целочисленных типов
PTRDIFF_WIDTH
(C23)
ширина в битах типа ptrdiff_t
(макрос-константа)
PTRDIFF_MIN
минимальное значение типа ptrdiff_t
(макрос-константа)
PTRDIFF_MAX
максимальное значение типа ptrdiff_t
(макрос-константа)
SIZE_WIDTH
(C23)
ширина в битах типа size_t
(макрос-константа)
SIZE_MAX
максимальное значение типа size_t
(макрос-константа)
SIG_ATOMIC_WIDTH
(C23)
ширина в битах типа sig_atomic_t
(макрос-константа)
SIG_ATOMIC_MIN
минимальное значение типа sig_atomic_t
(макрос-константа)
SIG_ATOMIC_MAX
максимальное значение типа sig_atomic_t
(макрос-константа)
WINT_WIDTH
(C23)
ширина в битах типа wint_t
(макрос-константа)
WINT_MIN
минимальное значение типа wint_t
(макрос-константа)
WINT_MAX
максимальное значение типа wint_t
(макрос-константа)
WCHAR_WIDTH
(C23)
ширина в битах типа wchar_t
(макрос-константа)
WCHAR_MIN
минимальное значение типа wchar_t
(макрос-константа)
WCHAR_MAX
максимальное значение типа wchar_t
(макрос-константа)

Функциональные макросы

Для каждого из следующих макросов, помеченных как (условно присутствует), реализация определяет его тогда и только тогда, когда она определяет соответствующее имя typedef.

INTN_C
(условно присутствует)
разворачивается в целочисленное константное выражение типа int_leastN_t; его значение задаётся аргументом
(функциональный макрос)
INTMAX_C
разворачивается в целочисленное константное выражение типа intmax_t; его значение задаётся аргументом
(функциональный макрос)
UINTN_C
(условно присутствует)
разворачивается в целочисленное константное выражение типа uint_leastN_t; его значение задаётся аргументом
(функциональный макрос)
UINTMAX_C
разворачивается в целочисленное константное выражение типа uintmax_t; его значение задаётся аргументом
(функциональный макрос)

Сводка

#define __STDC_VERSION_STDINT_H__ 202311L

// see description of intN_t
typedef /* see description */ int8_t;        // optional
typedef /* see description */ int16_t;       // optional
typedef /* see description */ int32_t;       // optional
typedef /* see description */ int64_t;       // optional
typedef /* see description */ intN_t;        // optional

// see description of int_fastN_t
typedef /* see description */ int_fast8_t;
typedef /* see description */ int_fast16_t;
typedef /* see description */ int_fast32_t;
typedef /* see description */ int_fast64_t;
typedef /* see description */ int_fastN_t;   // optional

// see description of int_leastN_t
typedef /* see description */ int_least8_t;
typedef /* see description */ int_least16_t;
typedef /* see description */ int_least32_t;
typedef /* see description */ int_least64_t;
typedef /* see description */ int_leastN_t;  // optional

typedef /* see description */ intmax_t;
typedef /* see description */ intptr_t;      // optional

// see description of uintN_t
typedef /* see description */ uint8_t;       // optional
typedef /* see description */ uint16_t;      // optional
typedef /* see description */ uint32_t;      // optional
typedef /* see description */ uint64_t;      // optional
typedef /* see description */ uintN_t;       // optional

// see description of uint_fastN_t
typedef /* see description */ uint_fast8_t;
typedef /* see description */ uint_fast16_t;
typedef /* see description */ uint_fast32_t;
typedef /* see description */ uint_fast64_t;
typedef /* see description */ uint_fastN_t;  // optional

// see description of uint_leastN_t
typedef /* see description */ uint_least8_t;
typedef /* see description */ uint_least16_t;
typedef /* see description */ uint_least32_t;
typedef /* see description */ uint_least64_t;
typedef /* see description */ uint_leastN_t; // optional

typedef /* see description */ uintmax_t;
typedef /* see description */ uintptr_t;     // optional

#define INTN_MIN          /* see description */
#define INTN_MAX          /* see description */
#define UINTN_MAX         /* see description */
#define INTN_WIDTH        /* see description */
#define UINTN_WIDTH       /* see description */

#define INT_FASTN_MIN     /* see description */
#define INT_FASTN_MAX     /* see description */
#define UINT_FASTN_MAX    /* see description */
#define INT_FASTN_WIDTH   /* see description */
#define UINT_FASTN_WIDTH  /* see description */

#define INT_LEASTN_MIN    /* see description */
#define INT_LEASTN_MAX    /* see description */
#define UINT_LEASTN_MAX   /* see description */
#define INT_LEASTN_WIDTH  /* see description */
#define UINT_LEASTN_WIDTH /* see description */

#define INTMAX_MIN        /* see description */
#define INTMAX_MAX        /* see description */
#define UINTMAX_MAX       /* see description */
#define INTMAX_WIDTH      /* see description */
#define UINTMAX_WIDTH     /* see description */

#define INTPTR_MIN        /* see description */ // optional
#define INTPTR_MAX        /* see description */ // optional
#define UINTPTR_MAX       /* see description */ // optional
#define INTPTR_WIDTH      /* see description */ // optional
#define UINTPTR_WIDTH     /* see description */ // optional

#define PTRDIFF_MIN       /* see description */
#define PTRDIFF_MAX       /* see description */
#define PTRDIFF_WIDTH     /* see description */
#define SIZE_MAX          /* see description */
#define SIZE_WIDTH        /* see description */

#define SIG_ATOMIC_MIN    /* see description */
#define SIG_ATOMIC_MAX    /* see description */
#define SIG_ATOMIC_WIDTH  /* see description */

#define WCHAR_MIN         /* see description */
#define WCHAR_MAX         /* see description */
#define WCHAR_WIDTH       /* see description */

#define WINT_MIN          /* see description */
#define WINT_MAX          /* see description */
#define WINT_WIDTH        /* see description */

#define INTN_C(value)     /* see description */
#define UINTN_C(value)    /* see description */
#define INTMAX_C(value)   /* see description */
#define UINTMAX_C(value)  /* see description */

Только если реализация определяет __STDC_LIB_EXT1__ и пользовательский код дополнительно определяет __STDC_WANT_LIB_EXT1__ до любого включения <stdint.h>:

#if defined(__STDC_WANT_LIB_EXT1__)
#define RSIZE_MAX /* see description */
#endif

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/header/stdint

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API