title: Limits.h
text: # 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 |
  