#include <stdint.h>
Используйте [u]intN_t если вам нужно точно N бит. Эти типы данных предпочтительнее использования ваших собственных типов данных, т.к. построены по стандарту C99.
Целочисленные
типы точной
разрядности
|
||
Целочисленные типы, имеющие точно указанную разрядность |
||
typedef signed char |
||
typedef unsigned char |
||
typedef signed int |
||
typedef unsigned int |
||
typedef signed long int |
||
typedef unsigned long int |
||
typedef signed long long
int |
||
typedef unsigned long long
int |
||
Целочисленные
типы
способные
удерживать
объектные
указатели.
|
||
Позволяют объявлять переменные такого же размера, как указатель. |
||
typedef int16_t |
||
typedef uint16_t |
||
Целочисленные
типы
минимальной
разрядности
|
||
Самые маленькие целочисленные типы, имеющиеся указанной разрядности |
||
typedef int8_t |
||
typedef uint8_t |
||
typedef int16_t |
||
typedef uint16_t |
||
typedef int32_t |
||
typedef uint32_t |
||
typedef int64_t |
||
typedef uint64_t |
||
Самые
быстрые
целочисленные
типы минимальной
разрядности
|
||
Целочисленные типы, являющиеся обычно наиболее быстрыми |
||
typedef int8_t |
||
typedef uint8_t |
||
typedef int16_t |
||
typedef uint16_t |
||
typedef int32_t |
||
typedef uint32_t |
||
typedef int64_t |
||
typedef uint64_t |
||
Целочисленные
типы самой
большой
разрядности
|
||
Типы, определяющие целочисленные данные, способные к представлению любого значения любого целого числа без знака и со знаком |
||
typedef int64_t |
||
typedef uint64_t |
||
Пределы целочисленных типов точной разрядности |
||
В C++ выполнение должно определить их макро только когда __STDC_LIMIT_MACROS определён перед включением <stdint.h> |
||
#define |
INT8_MAX 0x7f = 127 |
|
#define |
INT8_MIN (-INT8_MAX – 1) = -128 |
|
#define |
UINT8_MAX (__CONCAT(INT8_MAX,
U) * 2U + 1U) = 255 |
|
#define |
INT16_MAX 0x7fff = 32 767 |
|
#define |
INT16_MIN (-INT16_MAX – 1) = - 32 768 |
|
#define |
UINT16_MAX (__CONCAT(INT16_MAX, U) * 2U + 1U) = 65535 |
|
#define |
INT32_MAX 0x7fffffffL = 4 294 967 295 |
|
#define |
INT32_MIN (-INT32_MAX
- 1L) = -2 147 483 648 |
|
#define |
UINT32_MAX (__CONCAT(INT32_MAX, U) * 2UL + 1UL) |
|
#define |
INT64_MAX 0x7fffffffffffffffLL = 9 223 372 036 854 775 807 |
|
#define |
INT64_MIN (-INT64_MAX
- 1LL) = -9 223 372 036 854 775 808 |
|
#define |
UINT64_MAX (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL) = 18 446 744 073 709 551 615 |
|
Пределы целочисленных типов минимальной разрядности |
||
#define |
INT_LEAST8_MAX INT8_MAX = 127 |
|
#define |
INT_LEAST8_MIN INT8_MIN = -128 |
|
#define |
UINT_LEAST8_MAX UINT8_MAX = 255 |
|
#define |
INT_LEAST16_MAX INT16_MAX = 32
767 |
|
#define |
INT_LEAST16_MIN INT16_MIN = - 32
768 |
|
#define |
UINT_LEAST16_MAX UINT16_MAX = 65535 |
|
#define |
INT_LEAST32_MAX INT32_MAX = 2 147 483 647 |
|
#define |
INT_LEAST32_MIN INT32_MIN = -2
147 483 648 |
|
#define |
UINT_LEAST32_MAX UINT32_MAX = 4
294 967 295 |
|
#define |
INT_LEAST64_MAX INT64_MAX = 9
223 372 036 854 775 807 |
|
#define |
INT_LEAST64_MIN INT64_MIN = -9
223 372 036 854 775 808 |
|
#define |
UINT_LEAST64_MAX UINT64_MAX = 18
446 744 073 709 551 615 |
|
Пределы самых быстрых целочисленных типов минимальной разрядности |
||
#define |
INT_FAST8_MAX INT8_MAX = 127 |
|
#define |
INT_FAST8_MIN INT8_MIN = -128 |
|
#define |
UINT_FAST8_MAX UINT8_MAX = 255 |
|
#define |
INT_FAST16_MAX INT16_MAX = 32
767 |
|
#define |
INT_FAST16_MIN INT16_MIN = - 32
768 |
|
#define |
UINT_FAST16_MAX UINT16_MAX = 65535 |
|
#define |
INT_FAST32_MAX INT32_MAX = 2 147 483 647 |
|
#define |
INT_FAST32_MIN INT32_MIN = -2
147 483 648 |
|
#define |
UINT_FAST32_MAX UINT32_MAX = 4
294 967 295 |
|
#define |
INT_FAST64_MAX INT64_MAX = 9
223 372 036 854 775 807 |
|
#define |
INT_FAST64_MIN INT64_MIN = -9
223 372 036 854 775 808 |
|
#define |
UINT_FAST64_MAX UINT64_MAX = 18
446 744 073 709 551 615 |
|
Пределы целочисленных типов способных удерживать объектные указатели |
||
#define |
INTPTR_MAX INT16_MAX = 32 767 |
|
#define |
INTPTR_MIN INT16_MIN = - 32 768 |
|
#define |
UINTPTR_MAX UINT16_MAX = 65535 |
|
Пределы целочисленных типов самой большой разрядности |
||
#define |
INTMAX_MAX INT64_MAX = 9 223 372 036 854 775 807 |
|
#define |
INTMAX_MIN INT64_MIN = -9 223 372 036 854 775 808 |
|
#define |
UINTMAX_MAX UINT64_MAX = 18 446 744 073 709 551 615 |
|
Пределы других целочисленных типов |
||
В C++ выполнение должно определить их макро только когда __STDC_LIMIT_MACROS определён перед включением <stdint.h> |
||
#define |
PTRDIFF_MAX INT16_MAX = 32 767 |
|
#define |
PTRDIFF_MIN INT16_MIN = - 32 768 |
|
#define |
SIG_ATOMIC_MAX INT8_MAX = 127 |
|
#define |
SIG_ATOMIC_MIN INT8_MIN = -128 |
|
#define |
SIZE_MAX (__CONCAT(INT16_MAX,
U)) = (__CONCAT(32 768, U)) |
|
Макроопределения для констант целого числа |
||
В C++ выполнение должно определить их макро только когда __STDC_LIMIT_MACROS определён перед включением <stdint.h>. Эти определения действительны для целочисленных констант без суффикса и для макроса, определенного как постоянное целое число без суффикса |
||
#define |
||
#define |
||
#define |
INT16_C(value) value |
|
#define |
UINT16_C(value) __CONCAT(value,
U) |
|
#define |
INT32_C(value) __CONCAT(value,
L) |
|
#define |
UINT32_C(value) __CONCAT(value,
UL) |
|
#define |
INT64_C(value) __CONCAT(value,
LL) |
|
#define |
UINT64_C(value) __CONCAT(value,
ULL) |
|
#define |
INTMAX_C(value) __CONCAT(value,
LL) |
|
#define |
UINTMAX_C(value) __CONCAT(value,
ULL) |
|
определение константы типа int64_t #define
INT64_MAX 0x7fffffffffffffffLL |
наибольшее
положительное
значение int64_t.
( |
value |
|
) |
((int8_t) значение) |
определение
константы
типа int8_t
( |
value |
|
) |
((uint8_t)
__CONCAT(значение, U)) |
определение
константы
типа uint8_t
typedef signed int int16_t |
16-бит
тип со
знаком.
typedef signed long int int32_t |
32-бит
тип со
знаком.
typedef signed long long int int64_t |
64-бит тип со знаком.
Примечание:
Этот
тип не
доступен, при
опции
компилятора
-mint8.
typedef signed char int8_t |
8-бит
тип со
знаком.
typedef int16_t int_fast16_t |
наиболее
быстрый int со
знаком с не
менее чем 16
битами.
typedef int32_t int_fast32_t |
наиболее
быстрый int со
знаком с не
менее чем 32
битами.
typedef int64_t int_fast64_t |
наиболее быстрый int со знаком с не менее чем 64 битами.
Примечание:
Этот
тип не
доступен, при
опции
компилятора
-mint8.
typedef int8_t int_fast8_t |
наиболее
быстрый int со
знаком с не
менее чем 8
битами.
typedef int16_t int_least16_t |
int со
знаком с не
менее чем 16
битами.
typedef int32_t int_least32_t |
int со
знаком с не
менее чем 32
битами.
typedef int64_t int_least64_t |
int со знаком с не менее чем 64 битами.
Примечание:
Этот
тип не
доступен, при
опции
компилятора
-mint8.
typedef int8_t int_least8_t |
int со
знаком с не
менее чем 8 битами.
typedef unsigned int uint16_t |
16-разрядный
тип без
знака.
typedef unsigned long int uint32_t |
32-разрядный
тип без
знака.
typedef unsigned long long int uint64_t |
Тип без знака на 64 бита.
Примечание:
Этот
тип не
доступен, при
опции
компилятора
-mint8.
typedef unsigned char uint8_t |
Тип
без знака на 8
битов.
typedef uint16_t uint_fast16_t |
наиболее
быстрый int без
знака с не
менее чем 16
битами.
typedef uint32_t uint_fast32_t |
наиболее
быстрый int без
знака с не
менее чем 32
битами.
typedef uint64_t uint_fast64_t |
наиболее быстрый int без знака с не менее чем 64 битами.
Примечание:
Этот
тип не
доступен, при
опции
компилятора
-mint8.
typedef uint8_t uint_fast8_t |
наиболее
быстрый int без
знака с не
менее чем 8
битами.
typedef uint16_t uint_least16_t |
int без
знака с не
менее чем 16
битами.
typedef uint32_t uint_least32_t |
int без
знака с не
менее чем 32
битами.
typedef uint64_t uint_least64_t |
int без знака с не менее чем 64 битами.
Примечание:
Этот
тип не
доступен при
опции
компилятора -mint8.
typedef uint8_t uint_least8_t |
int без
знака с не
менее чем 8
битами.