C Kitaplığı - <limits.h>

limits.hbaşlık, çeşitli değişken türlerinin çeşitli özelliklerini belirler. Bu başlıkta tanımlanan makrolar, char, int ve long gibi çeşitli değişken türlerinin değerlerini sınırlar.

Bu sınırlar, bir değişkenin bu sınırların ötesinde herhangi bir değer depolayamayacağını belirtir; örneğin, işaretsiz bir karakter maksimum 255 değerine kadar saklayabilir.

Kitaplık Makroları

Aşağıdaki değerler uygulamaya özgüdür ve #define yönergesi ile tanımlanmıştır, ancak bu değerler burada verilenden daha düşük olamaz.

Makro Değer Açıklama
CHAR_BIT 8 Bir bayttaki bit sayısını tanımlar.
SCHAR_MIN -128 İşaretli bir karakter için minimum değeri tanımlar.
SCHAR_MAX +127 İşaretli bir karakter için maksimum değeri tanımlar.
UCHAR_MAX 255 İşaretsiz bir karakter için maksimum değeri tanımlar.
ÇEKİCİ -128 Char türü için minimum değeri tanımlar ve char negatif değerleri temsil ediyorsa, değeri SCHAR_MIN'e eşit olur, aksi takdirde sıfır.
CHAR_MAX +127 Char türünün değerini tanımlar ve char negatif değerleri temsil ediyorsa, değeri SCHAR_MAX'a eşit olacaktır, aksi takdirde UCHAR_MAX.
MB_LEN_MAX 16 Çok baytlı bir karakterde maksimum bayt sayısını tanımlar.
SHRT_MIN -32768 Kısa int için minimum değeri tanımlar.
SHRT_MAX +32767 Kısa int için maksimum değeri tanımlar.
USHRT_MAX 65535 İşaretsiz bir kısa int için maksimum değeri tanımlar.
INT_MIN -2147483648 Bir int için minimum değeri tanımlar.
INT_MAX +2147483647 Bir int için maksimum değeri tanımlar.
UINT_MAX 4294967295 İşaretsiz bir tamsayı için maksimum değeri tanımlar.
LONG_MIN -9223372036854775808 Bir uzun int için minimum değeri tanımlar.
LONG_MAX +9223372036854775807 Bir uzun int için maksimum değeri tanımlar.
ULONG_MAX 18446744073709551615 İşaretsiz bir uzun int için maksimum değeri tanımlar.

Misal

Aşağıdaki örnek, içinde tanımlanan sabitlerden birkaçının kullanımını gösterir. limits.h dosya.

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

Aşağıdaki sonucu verecek olan yukarıdaki programı derleyip çalıştıralım -

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