stdint.h — заголовний файл стандартної бібліотеки мови C, введений стандартом C99. Заголовний файл оголошує кілька цілочисельних типів і макросів.

Типи Заголовний файл оголошує цілочисельні типи, які мають заданий розмір, заданий мінімальний розмір і які за використання є найшвидшими. На додаток до них стандарт оголошує макроси, що встановлюють розміри цих типів. Платформа має підтримувати, принаймні, ряд цілочисельних типів заданих розмірів: ТипРозрядністьНабір значеньint_least8_tпринаймні, 8 біт[-128;127]int_least16_tпринаймні, 16 біт[-32768; 32767]int_least32_tпринаймні, 32 біта[-2147483648; 2147483647]int_least64_tпринаймні, 64 біта[-(2^63); 2^63 — 1]uint_least8_tпринаймні, 8 біт[0; 255]uint_least16_tпринаймні, 16 біт[0; 65535]uint_least32_tпринаймні, 32 біта[0; 4294967295]uint_least64_tпринаймні, 64 біт[0; 2^64 — 1]int_fast8_tпринаймні, 8 біт[-128; 127]int_fast16_tпринаймні, 16 біт[-32768; 32767]int_fast32_tпринаймні, 32 біта[-2147483648; 2147483647]int_fast64_tпринаймні, 64 біта[-(2^63); 2^63 — 1]uint_fast8_tпринаймні, 8 біт[0; 255]uint_fast16_tпринаймні, 16 біт[0; 65535]uint_fast32_tпринаймні, 32 біта[0; 4294967295]uint_fast64_tпринаймні, 64 біт[0; 2^64 — 1] Типи з точною шириною

Не всі системи можуть підтримувати всі ці типи. ТипОписint8_t8-бітовий зі знакомint16_t16-бітовий зі знакомint32_t32-бітовий зі знакомint64_t64-бітовий зі знакомuint8_t8-бітовий без знакаuint16_t16-бітовий без знакаuint32_t32-бітовий без знакаuint64_t64-бітовий без знака Задані типи мають ширину рівно 8, 16, 32 і 64 біти відповідно. Префікс u означає, що цей тип є беззнаковим і містить цілі числа, принаймні, від нуля до включно. Таким чином, тип uint_least8_t має існувати і містити числа від нуля до 255 включно.

Платформа може підтримувати вказівники на знакові і беззнакові цілочисельні типи: intptr_t і uintptr_t. Платформа повинна в рамках стандарту С99 підтримувати такі типи: intmax_t, uintmax_t, які можуть представляти найбільші цілочисельні значення.

Макроси Заголовний файл оголошує набори макросів, які містять найбільші і найменші значення цілочисельних типів. Щоб отримати назву, що представляє найбільше або найменше значення певного типу, візьміть назву типу, замініть _t на _MIN або _MAX і переведіть усі символи у верхній регістр. Наприклад, найменшим значенням для типу int32_t є INT32_MIN, а найбільшим значенням для типу uint_fast16_t — UINT_FAST16_MAX. МакросЗначенняINTx_MININTx_MAXUINTx_MAXINT_LEASTx_MININT_LEASTx_MAXUINT_LEASTx_MAXINT_FASTx_MININT_FASTx_MAXUINT_FASTx_MAXINTPTR_MININTx_MIN, залежить від платформиINTPTR_MAXINTx_MAX, залежить від платформиUINTPTR_MAXUINTx_MAX, залежить від платформиINTMAX_MININTMAX_MAXUINTMAX_MAXPTRDIFF_MININTPTR_MINPTRDIFF_MAXINTPTR_MAXSIZE_MAXUINTPTR_MAX Стандарт також визначає розмір типу sig_atomic_t, який може містити значення або [-128; 127], або [0; 255]. Для типу wchar_t встановлено такі ж обмеження, тільки вони є мінімальними. Тип wint_t, якщо визначений, має містити, принаймні, або значення [-32768; 32767], або [0; 65535].

Макроси INTx_C(value), INTMAX_C(value), UINTMAX_C(value) повинні розкриватися в цілочисельні константні вирази зі значенням value і з розмірністю INT_LEASTx_T, intmax_t і uintmax_t відповідно. Наприклад, на 64-розрядній машині вираз UINT64_C (123) має перетворитися на константу 123ULL.

Примітки