Biblioteka C - <limits.h>
Plik limits.hnagłówek określa różne właściwości różnych typów zmiennych. Makra zdefiniowane w tym nagłówku ograniczają wartości różnych typów zmiennych, takich jak char, int i long.
Te limity określają, że zmienna nie może przechowywać żadnej wartości poza tymi limitami, na przykład znak bez znaku może przechowywać do maksymalnej wartości 255.
Biblioteka makr
Poniższe wartości są specyficzne dla implementacji i zdefiniowane za pomocą dyrektywy #define, ale wartości te nie mogą być niższe niż podane tutaj.
Makro | Wartość | Opis |
---|---|---|
CHAR_BIT | 8 | Określa liczbę bitów w bajcie. |
SCHAR_MIN | -128 | Określa minimalną wartość podpisanego znaku. |
SCHAR_MAX | +127 | Określa maksymalną wartość podpisanego znaku. |
UCHAR_MAX | 255 | Określa maksymalną wartość dla znaku bez znaku. |
CHAR_MIN | -128 | Definiuje minimalną wartość dla typu char, a jego wartość będzie równa SCHAR_MIN, jeśli char reprezentuje wartości ujemne, w przeciwnym razie zero. |
CHAR_MAX | +127 | Definiuje wartość dla typu char i jego wartość będzie równa SCHAR_MAX, jeśli char reprezentuje wartości ujemne, w przeciwnym razie UCHAR_MAX. |
MB_LEN_MAX | 16 | Określa maksymalną liczbę bajtów w znaku wielobajtowym. |
SHRT_MIN | -32768 | Definiuje minimalną wartość dla krótkiego int. |
SHRT_MAX | +32767 | Określa maksymalną wartość dla krótkiego int. |
USHRT_MAX | 65535 | Definiuje maksymalną wartość dla nieoznaczonych krótkich int. |
INT_MIN | -2147483648 | Definiuje minimalną wartość int. |
INT_MAX | +2147483647 | Określa maksymalną wartość dla int. |
UINT_MAX | 4294967295 | Określa maksymalną wartość dla bez znaku int. |
LONG_MIN | -9223372036854775808 | Definiuje minimalną wartość dla długich int. |
LONG_MAX | +9223372036854775807 | Określa maksymalną wartość dla długich int. |
ULONG_MAX | 18446744073709551615 | Definiuje maksymalną wartość dla unsigned long int. |
Przykład
Poniższy przykład pokazuje użycie kilku stałych zdefiniowanych w limits.h plik.
#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);
}
Skompilujmy i uruchommy powyższy program, który da następujący wynik -
The number of bits in a byte 8
The minimum value of SIGNED CHAR = -128
The maximum value of SIGNED CHAR = 127
The maximum value of UNSIGNED CHAR = 255
The minimum value of SHORT INT = -32768
The maximum value of SHORT INT = 32767
The minimum value of INT = -2147483648
The maximum value of INT = 2147483647
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -9223372036854775808
The maximum value of LONG = 9223372036854775807