Concetti Chiave
- Il linguaggio C è tipizzato, richiedendo l'associazione di un tipo a ogni dato, facilitando l'interpretazione e la coerenza d'uso.
- C è debolmente tipizzato, permettendo conversioni flessibili tra tipi di dati tramite meccanismi impliciti ed espliciti.
- Lo standard ISO C89 include specificatori come void, char, int, float e double, e modificatori come short, long, signed e unsigned per definire i tipi di dati.
- Le combinazioni di specificatori e modificatori determinano il range di valori memorizzabili in memoria, influenzato dall'hardware disponibile.
- In C, il tipo carattere è considerato un piccolo intero, con conversione dipendente dal set di caratteri, solitamente lo standard ASCII.
I tipi di dati
Il C è un linguaggio tipizzato, quindi richiede che ad ogni dato venga associato un tipo. Questo aiuta il compilatore a capire come interpretare il contenuto della locazione in memoria e permette di verificare la coerenza tra l’uso di dati. C e considerato debolmente tipizzato, perche presenta meccanismi impliciti ed espliciti per trattare in modo flessibile le regole di conversione tra tipi di dati. Nello standard ISO C89 ci sono un numero ristretto di specificatori e modificatori di tipo, che possono essere combinati tra loro per definire altri tipi di dati.
Specificatori:
- void: dato indefinito;
- char: rappresenta i caratteri, chiamato anche costante di tipo numerico;
- int: numeri interi;
- float: numeri in virgola mobile con precisione singola;
- double: numeri con virgola mobile con precisione doppia;
Modificatori, modificano il range di valori ammissibili:
- short: riduce il numero di valori memorizzabili;
- long: aumenta il numero di valori memorizzabili;
- signed: il dato ha il segno;
- unsigned: il dato non ha il segno;
Specifica tori e modificatori possono essere posizionati in qualsiasi ordine e le possibili combinazioni sono:
- void
- char
- signed char
- unsigned char
- signed short int = short = signed short = short int
- unsigned short int = unsigned short
- signed int = int = signed
- unsigned int = unsigned
- signed long int = long = signed long = long int
- unsigned long int = unsigned long
- float
- double
- long double
Si possono dichiarare tipi senza identificatore ma sono inutili, poichè non riutilizzabili, mentre il tipo void non può essere assegnato a nessun identificativo.
In C non c’è una netta distinzione tra tipo carattere e tipo intero. Il carattere infatti è considerato un intero piccolo, e la conversione tra intero e carattere dipende dal set di caratteri disponibile sulla macchina, di solito lo standard ASCII (American Standard Code for Information Interchange).
Domande da interrogazione
- Qual è il ruolo dei tipi di dati nel linguaggio C?
- Come il linguaggio C gestisce la conversione tra tipi di dati?
- Quali sono i principali specificatori di tipo nello standard ISO C89?
- Come vengono utilizzati i modificatori di tipo in C?
Nel linguaggio C, i tipi di dati sono essenziali per aiutare il compilatore a interpretare correttamente il contenuto della memoria e a verificare la coerenza nell'uso dei dati.
Il C è considerato debolmente tipizzato perché offre meccanismi impliciti ed espliciti per gestire in modo flessibile le conversioni tra tipi di dati.
I principali specificatori di tipo nello standard ISO C89 includono void, char, int, float e double.
I modificatori di tipo, come short, long, signed e unsigned, modificano il range di valori ammissibili e possono essere combinati con i specificatori per definire altri tipi di dati.