Limite.h
limits.h este fișierul antet al bibliotecii standard a limbajului de programare C unde există definiții ale caracteristicilor tipurilor de date utilizate în mod obișnuit. Valorile sunt dependente de implementare, dar pot fi mai mari decât valorile de bază specificate într-o implementare C conformă cu standardele.
Standardul C99 specifică, de asemenea, fișierul de antet <stdint.h>
, care oferă nume și limite pentru întregi independente de platformă de dimensiuni explicite (cum ar fi int32_t pentru un întreg semnat pe 32 de biți).
Constante definite
Coloana „valoarea minimă a intervalului” conține valorile minime posibile pentru o constantă de acest tip, așa cum se specifică în standard. În special, valorile _MIN
sunt valorile minime care pot fi reprezentate în formele complementului 1 (rareori utilizate) și semnelor de mărime. Majoritatea implementărilor vor avea o gamă mai largă pentru cel puțin unele dintre aceste numere, de exemplu:
- Implementările complementului 2 au
SCHAR_MIN
egal cu -128 (și la fel pentru toate celelalte valori_MIN
). - Implementările pe 32 de biți setează
INT_MAX
la valoarea +2 147 483 647 (același lucru pentruINT_MIN
șiUINT_MAX
) - Implementările care acceptă Unicode vor seta
MB_LEN_MAX
la cel puțin 4. - Multe DSP - uri au
CHAR_BIT
egale cu 16 sau mai multe [1] [2] .
Nume | Descriere | Valoare tipica | Valoare minimă sau maximă pentru standardul ANSI | |
---|---|---|---|---|
CHAR_BIT | Numărul de biți într-un octet | 8 | ≥ + 8 | |
SCHAR_MIN | Valoare minimă pentru caracterul semnat | −128 | ≤ - 127 | |
SCHAR_MAX | Valoarea maximă pentru caracterul semnat | +127 | ≥ + 127 | |
UCHAR_MAX | Valoare maximă pentru caracterele nesemnate | +255 | ≥ + 255 | |
CHAR_MIN | Valoare minimă pentru un caracter | −128 | ≤ - 127 (dacă | |
CHAR_MAX | Valoarea maximă pentru un caracter | +127 | ≥ + 127 (dacă | |
MB_LEN_MAX | Lungimea maximă de octeți a unui caracter multibyte pentru toate limbile | variază, de obicei cel puțin 4 | ≥ + 1 | |
SHRT_MIN | Valoare minimă pentru un scurt int | −32.768 | ≤ - 32.767 | |
SHRT_MAX | Valoare maximă pentru un scurt int | +32,767 | ≥ + 32,767 | |
USHRT_MAX | Valoare maximă pentru un scurt int nesemnat | +65,535 | ≥ + 65.535 | |
INT_MIN | Valoare minimă pentru un int | −2.147.483.648 | ≤ - 32.767 | |
INT_MAX | Valoare maximă pentru un int | +2.147.483.647 | ≥ + 32,767 | |
UINT_MAX | Valoare maximă pentru un int nesemnat | +4.294.967.295 | ≥ + 65.535 | |
LONG_MIN | Valoare minimă pentru un int lung | Compilator pe 32 de biți | −2.147.483.648 | ≤ - 2.147.483.647 |
Compilator pe 64 de biți | −9.223.372.036.854.775.808 | |||
LONG_MAX | Valoare maximă pentru un int lung | Compilator pe 32 de biți | +2.147.483.647 | ≥ + 2.147.483.647 |
Compilator pe 64 de biți | +9.223.372.036.854.775.807 | |||
ULONG_MAX | Valoare maximă pentru un int lung nesemnat | Compilator pe 32 de biți | +4.294.967.295 | ≥ + 4.294.967.295 |
Compilator pe 64 de biți | +18.446.744.073.709.551.615 | |||
LLONG_MIN | Valoare minimă pentru o lungă perioadă de timp int | −9.223.372.036.854.775.808 | ≤ - 9.223.372.036.854.775.807 | |
LLONG_MAX | Valoare maximă pentru o lungă perioadă de timp int | +9.223.372.036.854.775.807 | ≥ + 9.223.372.036.854.775.807 | |
ULLONG_MAX | Valoare maximă pentru int | +18.446.744.073.709.551.615 | ≥ +18.446.744.073.709.551.615 |
Exemplul 1
#include <stdio.h>
#include <limits.h>
int main ( nul )
{
if ( CHAR_MAX == UCHAR_MAX ) {
printf ( "Această mașină folosește în mod implicit tipul de caracter \ n nesemnat " );
} altceva {
printf ( "Această mașină folosește caracterul semnat \ n în mod implicit );
}
retur 0 ;
}
Exemplul 2
#include <limits.h>
#include <stdio.h>
int main ( nul )
{
printf ( "Valoarea maximă a tipului int pe acest sistem este% d \ n " , INT_MAX );
retur 0 ;
}
Elemente conexe
Alte proiecte
linkuri externe
- ( EN ) Limite numerice C , pe en.cppreference.com .
- ( RO ) Ghidul C - 2.5 limits.h , pe acm.uiuc.edu (arhivat din original la 12 decembrie 2008) .
- Solicitați : un program pentru generarea automată de limits.h, care verifică, de asemenea, dacă valorile limitelor deja existente sunt corecte.