Union ed efficienza della memoria
Comprenda le differenze tra struct e union e il modo in cui le union ottimizzano l'uso della memoria.
Union ed efficienza della memoria è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 3 lezioni in totale.
Union ed efficienza della memoria
Union ed efficienza della memoria
Una union è un tipo di dato speciale che consente di memorizzare tipi di dati diversi nella stessa posizione di memoria.
In questa lezione imparerà:
- Come definire e utilizzare le union.
- La differenza tra strutture e union.
- Come le union ottimizzano l'utilizzo della memoria.

Che cos'è una union?
Che cos'è una union?
Una union è simile a una struttura, ma tutti i membri condividono lo stesso spazio di memoria.
Esempio:
union Data {
int i;
float f;
char str[20];
};
In questo caso, i, f e str condividono la stessa posizione di memoria.
Dichiarazione e utilizzo di una union
Dichiarazione e utilizzo di una union
Le union vengono dichiarate e utilizzate come le strutture:
union Data d1;
Assegnazione dei valori:
d1.i = 10;
È possibile memorizzare un valore in un solo membro alla volta.
Esempio: utilizzo di una union
Esempio: utilizzo di una union
Questo programma mostra come una union memorizza i valori in una posizione di memoria condivisa.
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data d1;
d1.i = 10;
printf("Integer: %d\n", d1.i);
d1.f = 20.5;
printf("Float: %f\n", d1.f);
return 0;
}Allocazione della memoria nelle union
Allocazione della memoria nelle union
A differenza delle strutture, la dimensione di una union è determinata dal membro più grande.
Esempio:
union Data {
int i; // 4 bytes
float f; // 4 bytes
char str[20]; // 20 bytes
};
La dimensione di questa union è di 20 byte, non di 28.
Differenza tra struct e union
Differenza tra struct e union
Struttura:
- Ogni membro ha una posizione di memoria separata.
- La dimensione è la somma di tutti i membri.
Union:
- Tutti i membri condividono la stessa posizione di memoria.
- La dimensione è determinata dal membro più grande.
Esempio: confronto tra struct e union
Esempio: confronto tra struct e union
Questo programma mostra la dimensione in memoria di una struct e di una union.
#include <stdio.h>
struct StructExample {
int i;
float f;
char str[20];
};
union UnionExample {
int i;
float f;
char str[20];
};
int main() {
printf("Size of struct: %lu bytes\n", sizeof(struct StructExample));
printf("Size of union: %lu bytes\n", sizeof(union UnionExample));
return 0;
}Quando utilizzare le union?
Quando utilizzare le union?
Le union sono utili quando:
- L'efficienza della memoria è una priorità.
- Una variabile deve memorizzare tipi diversi in momenti diversi.
- Si lavora con registri hardware.
Riepilogo
Riepilogo
In questa lezione ha imparato:
- Come funzionano le union e come consentono di risparmiare memoria.
- La differenza tra strutture e union.
- Come utilizzare le union in scenari pratici.
Successivamente esploreremo le enumerazioni in C!

Domande Frequenti
La lezione «Union ed efficienza della memoria» è gratuita?
Sì — il testo completo di «Union ed efficienza della memoria» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 3 lezioni in totale.
Cosa imparerò in «Union ed efficienza della memoria»?
Comprenda le differenze tra struct e union e il modo in cui le union ottimizzano l'uso della memoria. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Union ed efficienza della memoria»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Definizione e utilizzo delle strutture
- Union ed efficienza della memoria
- Enumerazioni (enum)