Заголовок <stdint.h>

Содержание

В заголовке <stdint.h> версии С99 не объявлено ни одной функции, но он определяет множество целочисленных типов и макросов. Целочисленные типы используются для объявления целых значений известного размера или значений, несущих информацию о некоторых специальных атрибутах.

Макросы, имеющие вид intN_t, определяют целое с разрядностью N бит. Например, макрос intl6_t задает 16-разрядное целое со знаком. Макросы, имеющие вид uintiN_t, определяют целое значение без знака с разрядностью N бит. Например, макрос uint32_t задает 32-разрядное целое без знака. Макросы, в имени которых N равно 8, 16, 32 или 64, доступны во всех средах, в которых предусмотрено выполнение операций над целыми числами с указанной разрядностью.

Макросы, имеющие вид int_leastN_t определяют целое значение с разрядностью не менее N бит. Макросы, имеющие вид uintleastN_t, определяют целое значение без знака с разрядностью не менее чем N бит. Макросы, в имени которых N равно 8, 16, 32 или 64, доступны во всех средах, в которых предусмотрено выполнение операций над целыми числами с указанной разрядностью. Например, макрос int_leastl6_t определяет допустимый тип.

Макросы, имеющие вид int_fastN_t, определяют самый быстродействующий целочисленный тип с разрядностью не менее N бит. Макросы, имеющие вид uint_fastN_t, определяют самый быстродействующий целочисленный тип без знака с разрядностью не менее чем N бит. Макросы, в имени которых N равно 8, 16, 32 или 64, доступны во всех средах. Например, макрос int_fast32_t — это допустимый тип значения для всех сред.

Тип intmax_t определяет тип целого максимальной разрядности со знаком, а тип uintmax_t — тип целого максимальной разрядности без знака.

Также определены типы intptr_t и uintptr_t. Их обычно используют для создания целых значений, в которых можно хранить указатели. Эти типы не являются обязательными.

В заголовке <stdint.h> определен ряд макросов с параметрами. Их макрорасширения являются константами заданного целочисленного типа. Эти макросы имеют следующую общую форму:

INTN_C(значение)
UINTN_C(значение)

Здесь N — разрядность нужного типа в битах. Каждый макрос создает константу разрядностью не менее N бит, которая представляет заданное значение. Также в этом заголовке определены следующие макросы:

INTMAX_C(значение)
UINTMAX_C(значение)

Они создают константы максимальной разрядности, представляющие заданное значение.