C/Standardikirjastot/limits.h
#include <limits.h>
Tämä tiedosto määrittelee useita makroja (esikääntäjän tasolla), joista selviää erinäisten numeeristen tietotyyppien arvorajat, sekä muuta erinäistä tietotyyppeihin liittyvää.
CHAR_BIT
on kokonaislukuarvo, joka vastaa sitä, montako bittiä char (tai signed char, unsigned char) -tyyppisessä arvossa on. Käytännössä tämä on "montako bittiä on tavussa". Nykyisillä järjestelmillä tämän arvo on käytännössä aina 8. C-standardi vaatii, että sen arvo on vähintään 8.
MB_LEN_MAX
on kokonaislukuarvo ja esittää, miten monta merkkiä voi olla enintään yhdessä monitavuisessa merkissä. Sen arvo on vähintään 1.
Tietotyyppien rajoihin liittyvät makrot on lueteltu alla olevassa taulukossa. C-standardi määrittelee kaikille näistä minimi- ja maksimiarvot. Tämä tarkoittaa sitä, että esim. INT_MIN on aina joko pienempi tai yhtä suuri kuin -32767, eikä voi olla esim. -255; samoin INT_MAX on aina joko suurempi tai yhtä kuin 32767, eikä voi olla esim. 42. Näin int-tyyppisen tietotyyppiin voi aina tallettaa arvon väliltä [-32767, +32767], oli kyseessä mikä alusta tahansa, kunhan se noudattaa C-standardia.
Tietotyyppi | Minimiarvon makro | on pienempi tai yhtä kuin |
Maksimiarvon makro | on suurempi tai yhtä kuin |
Huomiot |
---|---|---|---|---|---|
signed char
|
SCHAR_MIN
|
-127 | SCHAR_MAX
|
+127 | |
unsigned char
|
— | = 0 | UCHAR_MAX
|
+255 | |
char
|
CHAR_MIN
|
CHAR_MAX
|
jos char = signed char , niin CHAR_MIN = SCHAR_MIN ja CHAR_MAX = SCHAR_MAX jos char = unsigned char , niin CHAR_MIN = 0 ja CHAR_MAX = UCHAR_MAX
| ||
short (int )
|
SHRT_MIN
|
-32767 | SHRT_MAX
|
+32767 | |
unsigned short (int )
|
— | = 0 | USHRT_MAX
|
+65535 | |
int
|
INT_MIN
|
-32767 | INT_MAX
|
+32767 | |
unsigned (int )
|
— | = 0 | UINT_MAX
|
+65535 | |
long (int )
|
LONG_MIN
|
-2147483647 | LONG_MAX
|
+2147483647 | |
unsigned long (int )
|
— | = 0 | ULONG_MAX
|
+4294967295 | |
long long (int )
|
LLONG_MIN
|
-9223372036854775807 | LLONG_MAX
|
+9223372036854775807 | C99 |
unsigned long long (int )
|
— | = 0 | ULLONG_MAX
|
+18446744073709551615 | C99 |
limits.h on yksi harvoista otsikkotiedostoista, joka on saatavilla myös ns. irrallisessa (engl. freestanding) ympäristössä. Tämä tarkoittaa sitä, että otsikkotiedoston määritelmät ovat kääntäjän tiedossa heti jo ohjelmaa kääntäessä, eikä se sisällä funktioita tai muuttujia. Irrallisia ympäristöjä ovat sellaiset, joissa ei ole saatavilla suoritettavaa C-standardikirjaston toteutusta.