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 (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ù . NomeDescrizioneValore tipicoValore minimo o massimo per lo standard ANSICHAR_BITNumero di bit in un byte8≥ +8SCHAR_MINValore minimo per signed char−128≤ −127SCHAR_MAXValore massimo per signed char+127≥ +127UCHAR_MAXValore massimo per unsigned char+255≥ +255CHAR_MINValore minimo per char−128≤ −127 (se char è rappresentato come un signed char; altrimenti ≤ 0)CHAR_MAXValore massimo per char+127≥ +127 (se char è rappresentato come un signed char; altrimenti ≥ +255)MB_LEN_MAXLunghezza massima in byte di un carattere multibyte per tutte le linguevaria, di solito almeno 4≥ +1SHRT_MINValore minimo per short int≤ SHRT_MAXValore massimo per short int≥ USHRT_MAXValore massimo per unsigned short int≥ INT_MINValore minimo per int≤ INT_MAXValore massimo per int≥ UINT_MAXValore massimo per unsigned int≥ LONG_MINValore minimo per long intcompilatore 32 bit≤ compilatore 64 bitLONG_MAXValore massimo per long intcompilatore 32 bit≥ compilatore 64 bitULONG_MAXValore massimo per unsigned long intcompilatore 32 bit≥ compilatore 64 bitLLONG_MINValore minimo per long long int≤ LLONG_MAXValore massimo per long long int≥ ULLONG_MAXValore massimo per unsigned long long int≥
Esempio 1 #include <stdio.h> #include <limits.h>
int main(void) { if(CHAR_MAX == UCHAR_MAX) { printf("Questa macchina utilizza di default il tipo unsigned char\n"); } else { printf("Questa macchina utilizza di default il tipo signed char\n");
return 0; }
Esempio 2 #include <limits.h> #include <stdio.h>
int main(void) { printf("Il valore massimo di tipo int su questo sistema è %d\n", INT_MAX); return 0; }
Voci correlate Libreria standard del C float.h
Altri progetti
Collegamenti esterni
Inquire: un programma per la generazione automatica di limits.h, il quale controlla anche che i valori nei limits.h già esistenti siano corretti
Categoria:Libreria standard del C