C Bibliothek - <limit.h>

Das limits.hDer Header bestimmt verschiedene Eigenschaften der verschiedenen Variablentypen. Die in diesem Header definierten Makros begrenzen die Werte verschiedener Variablentypen wie char, int und long.

Diese Grenzwerte geben an, dass eine Variable keinen Wert außerhalb dieser Grenzwerte speichern kann. Beispielsweise kann ein vorzeichenloses Zeichen bis zu einem Maximalwert von 255 speichern.

Bibliotheksmakros

Die folgenden Werte sind implementierungsspezifisch und werden mit der Direktive #define definiert. Diese Werte dürfen jedoch nicht niedriger sein als hier angegeben.

Makro Wert Beschreibung
CHAR_BIT 8 Definiert die Anzahl der Bits in einem Byte.
SCHAR_MIN -128 Definiert den Mindestwert für ein signiertes Zeichen.
SCHAR_MAX +127 Definiert den Maximalwert für ein signiertes Zeichen.
UCHAR_MAX 255 Definiert den Maximalwert für ein vorzeichenloses Zeichen.
CHAR_MIN -128 Definiert den Mindestwert für den Typ char und sein Wert ist gleich SCHAR_MIN, wenn char negative Werte darstellt, andernfalls Null.
CHAR_MAX +127 Definiert den Wert für den Typ char und sein Wert ist gleich SCHAR_MAX, wenn char negative Werte darstellt, andernfalls UCHAR_MAX.
MB_LEN_MAX 16 Definiert die maximale Anzahl von Bytes in einem Mehrbytezeichen.
SHRT_MIN -32768 Definiert den Mindestwert für ein kurzes int.
SHRT_MAX +32767 Definiert den Maximalwert für ein kurzes int.
USHRT_MAX 65535 Definiert den Maximalwert für ein vorzeichenloses kurzes int.
INT_MIN -2147483648 Definiert den Mindestwert für ein int.
INT_MAX +2147483647 Definiert den Maximalwert für ein int.
UINT_MAX 4294967295 Definiert den Maximalwert für ein vorzeichenloses int.
LONG_MIN -9223372036854775808 Definiert den Mindestwert für ein langes int.
LONG_MAX +9223372036854775807 Definiert den Maximalwert für ein langes int.
ULONG_MAX 18446744073709551615 Definiert den Maximalwert für ein vorzeichenloses Long-Int.

Beispiel

Das folgende Beispiel zeigt die Verwendung weniger der in definierten Konstanten limits.h Datei.

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

Lassen Sie uns das obige Programm kompilieren und ausführen, das das folgende Ergebnis liefert:

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