Домашняя страница библиотеки_c AVR

Синтаксис языка C

Библиотека языка C GNU glibc

Страницы развития библиотеки_с AVR

Главная страница

Инструкция пользователя

Содержание библиотеки_c

Часто задаваемые вопросы

Содержание по алфавиту

Демонстрационные проекты


<stdint.h>: Стандартные целочисленные типы

Детальное Описание

#include <stdint.h> 

Используйте [u]intN_t если вам нужно точно N бит. Эти типы данных предпочтительнее использования ваших собственных типов данных, т.к. построены по стандарту C99.

Целочисленные типы точной разрядности

Целочисленные типы, имеющие точно указанную разрядность

typedef signed char 

int8_t

typedef unsigned char 

uint8_t

typedef signed int 

int16_t

typedef unsigned int 

uint16_t

typedef signed long int 

int32_t

typedef unsigned long int 

uint32_t

typedef signed long long int 

int64_t

typedef unsigned long long int 

uint64_t

 

Целочисленные типы способные удерживать объектные указатели.

Позволяют объявлять переменные такого же размера, как указатель.

typedef int16_t 

intptr_t

typedef uint16_t 

uintptr_t

 

Целочисленные типы минимальной разрядности

Самые маленькие целочисленные типы, имеющиеся указанной разрядности

typedef int8_t 

int_least8_t

typedef uint8_t 

uint_least8_t

typedef int16_t 

int_least16_t

typedef uint16_t 

uint_least16_t

typedef int32_t 

int_least32_t

typedef uint32_t 

uint_least32_t

typedef int64_t 

int_least64_t

typedef uint64_t 

uint_least64_t

 

Самые быстрые целочисленные типы минимальной разрядности

Целочисленные типы, являющиеся обычно наиболее быстрыми

typedef int8_t 

int_fast8_t

typedef uint8_t 

uint_fast8_t

typedef int16_t 

int_fast16_t

typedef uint16_t 

uint_fast16_t

typedef int32_t 

int_fast32_t

typedef uint32_t 

uint_fast32_t

typedef int64_t 

int_fast64_t

typedef uint64_t 

uint_fast64_t

 

Целочисленные типы самой большой разрядности

Типы, определяющие целочисленные данные, способные к представлению любого значения любого целого числа без знака и со знаком

typedef int64_t 

intmax_t

typedef uint64_t 

uintmax_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 

INT8_C(value)   ((int8_t) value)

#define 

UINT8_C(value)   ((uint8_t) __CONCAT(value, U))

#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)


Документация макроопределений

#define INT16_C

(

value 

 

 ) 

   значение

определение константы типа int16_t

#define INT16_MAX   0x7fff

наибольшее положительное значение int16_t.

#define INT16_MIN   (-INT16_MAX - 1)

наименьшее отрицательное значение int16_t.

#define INT32_C

(

value 

 

 ) 

   __CONCAT(значение, L)

определение константы типа int32_t

#define INT32_MAX   0x7fffffffL

наибольшее положительное значение int32_t.

#define INT32_MIN   (-INT32_MAX - 1L)

наименьшее отрицательное значение int32_t.

#define INT64_C

(

value 

 

 ) 

   __CONCAT(значение, LL)

определение константы типа int64_t

#define INT64_MAX   0x7fffffffffffffffLL

наибольшее положительное значение int64_t.

#define INT64_MIN   (-INT64_MAX - 1LL)

наименьшее отрицательное значение int64_t.

#define INT8_C

(

value 

 

 ) 

   ((int8_t) значение)

определение константы типа int8_t

#define INT8_MAX   0x7f

наибольшее положительное значение int8_t.

#define INT8_MIN   (-INT8_MAX - 1)

наименьшее отрицательное значение int8_t.

#define INT_FAST16_MAX   INT16_MAX

наибольшее положительное значение int_fast16_t.

#define INT_FAST16_MIN   INT16_MIN

наименьшее отрицательное значение int_fast16_t.

#define INT_FAST32_MAX   INT32_MAX

наибольшее положительное значение int_fast32_t.

#define INT_FAST32_MIN   INT32_MIN

наименьшее отрицательное значение int_fast32_t.

#define INT_FAST64_MAX   INT64_MAX

наибольшее положительное значение int_fast64_t.

#define INT_FAST64_MIN   INT64_MIN

наименьшее отрицательное значение int_fast64_t.

#define INT_FAST8_MAX   INT8_MAX

наибольшее положительное значение int_fast8_t.

#define INT_FAST8_MIN   INT8_MIN

наименьшее отрицательное значение int_fast8_t.

#define INT_LEAST16_MAX   INT16_MAX

наибольшее положительное значение int_least16_t.

#define INT_LEAST16_MIN   INT16_MIN

наименьшее отрицательное значение int_least16_t.

#define INT_LEAST32_MAX   INT32_MAX

наибольшее положительное значение int_least32_t.

#define INT_LEAST32_MIN   INT32_MIN

наименьшее отрицательное значение int_least32_t.

#define INT_LEAST64_MAX   INT64_MAX

наибольшее положительное значение int_least64_t.

#define INT_LEAST64_MIN   INT64_MIN

наименьшее отрицательное значение int_least64_t.

#define INT_LEAST8_MAX   INT8_MAX

наибольшее положительное значение int_least8_t.

#define INT_LEAST8_MIN   INT8_MIN

наименьшее отрицательное значение int_least8_t.

#define INTMAX_C

(

value 

 

 ) 

   __CONCAT(значение, LL)

определение константы типа intmax_t

#define INTMAX_MAX   INT64_MAX

наибольшее положительное значение intmax_t.

#define INTMAX_MIN   INT64_MIN

наименьшее отрицательное значение intmax_t.

#define INTPTR_MAX   INT16_MAX

наибольшее положительное значение intptr_t.

#define INTPTR_MIN   INT16_MIN

наименьшее отрицательное значение intptr_t.

#define PTRDIFF_MAX   INT16_MAX

наибольшее положительное значение ptrdiff_t.

#define PTRDIFF_MIN   INT16_MIN

наименьшее отрицательное значение ptrdiff_t.

#define SIG_ATOMIC_MAX   INT8_MAX

наибольшее положительное значение sig_atomic_t.

#define SIG_ATOMIC_MIN   INT8_MIN

наименьшее отрицательное значение sig_atomic_t.

#define SIZE_MAX   (__CONCAT(INT16_MAX, U))

наибольшее значение size_t.

#define UINT16_C

(

value 

 

 ) 

   __CONCAT(значение, U)

определение константы типа uint16_t

#define UINT16_MAX   (__CONCAT(INT16_MAX, U) * 2U + 1U)

наибольшее значение uint16_t.

#define UINT32_C

(

value 

 

 ) 

   __CONCAT(значение, UL)

определение константы типа uint32_t

#define UINT32_MAX   (__CONCAT(INT32_MAX, U) * 2UL + 1UL)

наибольшее значение uint32_.

#define UINT64_C

(

value 

 

 ) 

   __CONCAT(значение, ULL)

определение константы типа uint64_t

#define UINT64_MAX   (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)

наибольшее значение uint64_t.

#define UINT8_C

(

value 

 

 ) 

   ((uint8_t) __CONCAT(значение, U))

определение константы типа uint8_t

#define UINT8_MAX   (__CONCAT(INT8_MAX, U) * 2U + 1U)

наибольшее значение uint8_t.

#define UINT_FAST16_MAX   UINT16_MAX

наибольшее значение uint_fast16_t.

#define UINT_FAST32_MAX   UINT32_MAX

наибольшее значение uint_fast32_t.

#define UINT_FAST64_MAX   UINT64_MAX

наибольшее значение uint_fast64_t.

#define UINT_FAST8_MAX   UINT8_MAX

наибольшее значение uint_fast8_t.

#define UINT_LEAST16_MAX   UINT16_MAX

наибольшее значение uint_least16_t.

#define UINT_LEAST32_MAX   UINT32_MAX

наибольшее значение uint_least32_t.

#define UINT_LEAST64_MAX   UINT64_MAX

наибольшее значение uint_least64_t.

#define UINT_LEAST8_MAX   UINT8_MAX

наибольшее значение uint_least8_t.

#define UINTMAX_C

(

value 

 

 ) 

   __CONCAT(значение, ULL)

определение константы типа uintmax_t

#define UINTMAX_MAX   UINT64_MAX

наибольшее значение uintmax_t.

#define UINTPTR_MAX   UINT16_MAX

наибольшее значение uintptr_t.


Документация Typedef

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 int64_t intmax_t

наибольший доступный int со знаком.

typedef int16_t intptr_t

указатель со знаком совместимый тип.

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 битами.

typedef uint64_t uintmax_t

наибольший доступный int без знака.

typedef uint16_t uintptr_t

Указатель без знака совместимый тип.

Hosted by uCoz