Limits.h
# Limits.h

* Libreria standard del C++
* Libreria standard del C
* <assert.h>
* <ctype.h>
* <errno.h>
* <float.h>
* <iso646.h>
* <limits.h>
* <math.h>
* <stddef.h>
* <stdio.h>
* <stdlib.h>
* <string.h>
* <time.h>
* V · D · M

limits.h è l'header file della libreria standard del linguaggio di programmazione C dove sono presenti le definizioni delle caratteristiche di tipi di dato comunemente utilizzati. I valori dipendono dall'implementazione, ma potrebbero essere più grandi rispetto ai valori base specificati in un'implementazione C conforme agli standard.

Lo standard C99 specifica anche il file di intestazione <stdint.h>, che fornisce nomi e limiti per i tipi di dati interi indipendenti dalla piattaforma di dimensioni esplicite (ad esempio int32_t per un intero con segno a 32 bit).

## Costanti definite

La colonna "valore minimo dell'intervallo" contiene i minimi valori possibili per una costante di questo tipo, come specificato nella standard. In particolare, i valori _MIN sono i minimi valori rappresentabili nelle forme complemento a 1 (scarsamente utilizzato) e grandezza-segno. La maggior parte delle implementazioni avrà un intervallo più ampio per almeno alcuni di questi numeri, per esempio:

* Le implementazioni in complemento a 2 hanno SCHAR_MIN uguale a −128 (e allo stesso modo per tutti gli altri valori _MIN).
* Le implementazioni a 32 bit settano INT_MAX al valore +2 147 483 647 (lo stesso per INT_MIN e UINT_MAX)
* Le implementazioni che supportano Unicode setteranno MB_LEN_MAX come minimo a 4.
* Molti DSP hanno CHAR_BIT uguale a 16 o più .

| Nome | Descrizione | Valore tipico | Valore tipico | Valore minimo o massimo per lo standard ANSI |
| - | - | - | - | - |
| CHAR_BIT | Numero di bit in un byte | 8 | 8 | ≥ +8 |
| SCHAR_MIN | Valore minimo per signed char | −128 | −128 | ≤ −127 |
| SCHAR_MAX | Valore massimo per signed char | +127 | +127 | ≥ +127 |
| UCHAR_MAX | Valore massimo per unsigned char | +255 | +255 | ≥ +255 |
| CHAR_MIN | Valore minimo per char | −128 | −128 | ≤ −127 (se char è rappresentato come un signed char; altrimenti ≤ 0) |
| CHAR_MAX | Valore massimo per char | +127 | +127 | ≥ +127 (se char è rappresentato come un signed char; altrimenti ≥ +255) |
| MB_LEN_MAX | Lunghezza massima in byte di un carattere multibyte per tutte le lingue | varia, di solito almeno 4 | varia, di solito almeno 4 | ≥ +1 |
| SHRT_MIN | Valore minimo per short int | −32 768 | −32 768 | ≤ −32 767 |
| SHRT_MAX | Valore massimo per short int | +32 767 | +32 767 | ≥ +32 767 |
| USHRT_MAX | Valore massimo per unsigned short int | +65 535 | +65 535 | ≥ +65 535 |
| INT_MIN | Valore minimo per int | −2 147 483 648 | −2 147 483 648 | ≤ −32 767 |
| INT_MAX | Valore massimo per int | +2 147 483 647 | +2 147 483 647 | ≥ +32 767 |
| UINT_MAX | Valore massimo per unsigned int | +4 294 967 295 | +4 294 967 295 | ≥ +65 535 |
| LONG_MIN | Valore minimo per long int | compilatore 32 bit | −2 147 483 648 | ≤ −2 147 483 647 |
| LONG_MIN | Valore minimo per long int | compilatore 64 bit | −9 223 372 036 854 775 808 | ≤ −2 147 483 647 |
| LONG_MAX | Valore massimo per long int | compilatore 32 bit | +2 147 483 647 | ≥ +2 147 483 647 |
| LONG_MAX | Valore massimo per long int | compilatore 64 bit | +9 223 372 036 854 775 807 | ≥ +2 147 483 647 |
| ULONG_MAX | Valore massimo per unsigned long int | compilatore 32 bit | +4 294 967 295 | ≥ +4 294 967 295 |
| ULONG_MAX | Valore massimo per unsigned long int | compilatore 64 bit | +18 446 744 073 709 551 615 | ≥ +4 294 967 295 |
| LLONG_MIN | Valore minimo per long long int | −9 223 372 036 854 775 808 | −9 223 372 036 854 775 808 | ≤ −9 223 372 036 854 775 807 |
| LLONG_MAX | Valore massimo per long long int | +9 223 372 036 854 775 807 | +9 223 372 036 854 775 807 | ≥ +9 223 372 036 854 775 807 |
| ULLONG_MAX | Valore massimo per unsigned long long int | +18 446 744 073 709 551 615 | +18 446 744 073 709 551 615 | ≥ +18 446 744 073 709 551 615 |
