limits.h

limits.h — заголовочный файл стандартной библиотеки общего назначения языка программирования Си, который включает определения характеристик общих типов переменных. Их значения зависят от целевой аппаратной платформы и используемого компилятора языка.

Константы-члены

Колонка «минимальное значение диапазона» содержит минимумы из возможного диапазона для константы данного типа, как это указано в стандарте. Иногда значения _MIN представляют минимумы диапазона, представимые в виде редко используемого обратного кода и знакового диапазона. Большинство реализаций будут иметь больший диапазон по крайней мере для некоторых из этих чисел. например:

  • Реализации дополнительного кода имеют SCHAR_MIN равным −128 (аналогично для всех остальных значений _MIN).
  • 32-битные реализации устанавливают INT_MAX равным +2 147 483 647 (а также для INT_MIN и UINT_MAX)
  • Реализации с поддержкой Юникода устанавливают MB_LEN_MAX 4 или более.
  • Многие ЦСП имеют CHAR_BIT равным 16 или более.
ИмяОписаниеТипичное значение 32-битной
выполняемой/компилируемой
программы (с 1995 и сейчас)
Типичное значение 64-битной
выполняемой/компилируемой
программы (с 2008(?))
Стандартный минимум
или максимум диапазона значений по ANSI
CHAR_BITЧисло бит в байте88≥ 8
SCHAR_MINМинимальное значение для знакового char−128−128≤ −127
SCHAR_MAXМаксимальное значение для знакового char+127+127≥ +127
UCHAR_MAXМаксимальное значение для беззнакового char+255+255≥ +255
CHAR_MINМинимальное значение для char−128−128≤ −127
(если char представлено как
знаковый char; иначе 0)
CHAR_MAXМаксимальное значение для char+127+127≥ +127
(если char представлено как
знаковый char; иначе +255)
MB_LEN_MAXМаксимальная многобайтовая длина символа по всем локалямразличается, обычно от 4различается, обычно от 4≥ 1
SHRT_MINМинимальное значение для short int−32768−32768≤ −32767
SHRT_MAXМаксимальное значение для short int+32767+32767≥ +32767
USHRT_MAXМаксимальное значение для беззнакового short int+65535+65535≥ +65535
INT_MINМинимальное значение для int−2147483648−2147483648≤ −32767
INT_MAXМаксимальное значение для int+2147483647+2147483647≥ +32767
UINT_MAXМаксимальное значение для беззнакового int+4294967295+4294967295≥ +65535
LONG_MINМинимальное значение для long int−2147483648−9223372036854775808≤ −2147483647
LONG_MAXМаксимальное значение для long int+2147483647+9223372036854775807≥ +2147483647
ULONG_MAXМаксимальное значение для беззнакового long int+4294967295+18446744073709551615≥ +4294967295
LLONG_MINМинимальное значение для long long int−9223372036854775808−9223372036854775808≤ −9223372036854775807
LLONG_MAXМаксимальное значение для long long int+9223372036854775807+9223372036854775807≥ +9223372036854775807
ULLONG_MAXМаксимальное значение для беззнакового long long int+18446744073709551615+18446744073709551615≥ +18446744073709551615

Пример 1

#include <stdio.h>
#include <limits.h>
 
int main (void) 
{
  if (CHAR_MAX==UCHAR_MAX) {
    printf("This machine uses unsigned char by default\n");
  } else {
    printf("This machine uses signed char by default\n");
  }
  return 0;
}

Пример 2

#include <limits.h>
#include <locale.h>
#include <stdio.h>

int main(void)
{
	setlocale(LC_ALL, "RUS");
	printf("Максимальное значение типа int в этой системе составляет %d\n", INT_MAX);

    return 0;
}

См. также

Дополнительные источники

  • Enquire: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.