Enumerazioni C
Enumerazioni Strutture Unioni
Enumerazioni in Linguaggio C
Le enumerazioni permettono di definire un nuovo tipo di dato con nomi simbolici associati a valori interi.
enum MesiAnno {
GENNAIO = 1,
FEBBRAIO,
MARZO,
APRILE,
MAGGIO,
GIUGNO,
LUGLIO,
AGOSTO,
SETTEMBRE,
OTTOBRE,
NOVEMBRE,
DICEMBRE
};
enum MesiAnno meseCorrente = GIUGNO;
In questo esempio, `MesiAnno` è l'identificativo della enumerazione, e i valori assegnati iniziano da 1. `meseCorrente` è una variabile di tipo `MesiAnno` con il valore corrispondente a GIUGNO.
Strutture in Linguaggio C
Le strutture consentono di creare un tipo di dato che raggruppa diversi tipi di dati sotto un unico nome. Ecco un esempio:
struct Punto {
int x;
int y;
};
struct Punto puntoA = {3, 7}; // Inizializzazione diretta
// Metodo designation
struct Punto puntoB = {
.x = 5,
.y = 10
};
Qui, `Punto` è l'identificativo della struttura, e `puntoA` e `puntoB` sono variabili di tipo `struct Punto` inizializzate in modo diverso.
Uso di Strutture con Array e Strutture Nidificate
Puoi utilizzare strutture con array o definire strutture nidificate. Esempi:
struct Rettangolo {
struct Punto verticeSuperioreSinistro;
struct Punto verticeInferioreDestro;
};
struct Rettangolo arrayRettangoli[3]; // Array di strutture
// Accesso ai membri di strutture nidificate
arrayRettangoli[0].verticeSuperioreSinistro.x = 2;
arrayRettangoli[0].verticeSuperioreSinistro.y = 5;
Qui, abbiamo una struttura `Rettangolo` che contiene due membri di tipo `struct Punto`. L'array `arrayRettangoli` è un array di queste strutture.
Unioni in Linguaggio C
Le unioni consentono di memorizzare diversi tipi di dati nello stesso spazio di memoria. Esempio:
union Dato {
int intero;
float decimale;
char carattere;
};
union Dato valore;
valore.intero = 42;
// Puoi accedere allo stesso spazio di memoria come float o char
printf("%f\n", valore.decimale);
printf("%c\n", valore.carattere);
Le unioni sono utili quando si desidera risparmiare spazio di memoria, poiché occupano solo la quantità di memoria necessaria per il membro più grande.