Заголовок limit.h определяет различные свойства различных типов переменных. Макросы, определенные в этом заголовке, ограничивают значения различных типов переменных, таких как char, int и long.
Эти ограничения указывают на то, что переменная не может хранить любое значение за пределами этих ограничений, например, беззнаковый символ может хранить до максимального значения 255.
Макросы библиотеки
Следующие значения зависят от реализации и определяются с помощью директивы #define, но эти значения могут быть не ниже указанных здесь.
макрос | Значение | Описание |
---|---|---|
CHAR_BIT | 8 | Определяет количество бит в байте. |
SCHAR_MIN | -128 | Определяет минимальное значение для подписанного символа. |
SCHAR_MAX | +127 | Определяет максимальное значение для подписанного символа. |
UCHAR_MAX | 255 | Определяет максимальное значение для беззнакового символа. |
CHAR_MIN | -128 | Определяет минимальное значение для типа char, и его значение будет равно SCHAR_MIN, если char представляет отрицательные значения, в противном случае — ноль. |
CHAR_MAX | +127 | Определяет значение для типа char, и его значение будет равно SCHAR_MAX, если char представляет отрицательные значения, в противном случае UCHAR_MAX. |
MB_LEN_MAX | 16 | Определяет максимальное количество байтов в многобайтовом символе. |
SHRT_MIN | -32768 | Определяет минимальное значение для короткого int. |
SHRT_MAX | +32767 | Определяет максимальное значение для короткого int. |
USHRT_MAX | 65535 | Определяет максимальное значение для беззнакового короткого типа int. |
INT_MIN | -2147483648 | Определяет минимальное значение для int. |
INT_MAX | +2147483647 | Определяет максимальное значение для int. |
UINT_MAX | 4294967295 | Определяет максимальное значение для беззнакового целого. |
LONG_MIN | -9223372036854775808 | Определяет минимальное значение для длинного int. |
LONG_MAX | +9223372036854775807 | Определяет максимальное значение для длинного int. |
ULONG_MAX | 18446744073709551615 | Определяет максимальное значение для беззнакового long int. |
пример
В следующем примере показано использование нескольких констант, определенных в файле limit.h .
#include <stdio.h> #include <limits.h> int main() { printf("The number of bits in a byte %d\n", CHAR_BIT); printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN); printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX); printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX); printf("The minimum value of SHORT INT = %d\n", SHRT_MIN); printf("The maximum value of SHORT INT = %d\n", SHRT_MAX); printf("The minimum value of INT = %d\n", INT_MIN); printf("The maximum value of INT = %d\n", INT_MAX); printf("The minimum value of CHAR = %d\n", CHAR_MIN); printf("The maximum value of CHAR = %d\n", CHAR_MAX); printf("The minimum value of LONG = %ld\n", LONG_MIN); printf("The maximum value of LONG = %ld\n", LONG_MAX); return(0); }
Давайте скомпилируем и запустим вышеуказанную программу, которая даст следующий результат —