0Pricing
C Academy · Lezione

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.
Union ed efficienza della memoria — illustrazione 1

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!

Union ed efficienza della memoria — illustrazione 10

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

  1. Definizione e utilizzo delle strutture
  2. Union ed efficienza della memoria
  3. Enumerazioni (enum)
← Torna a C Academy