C Academy · Lektion

Unioner och minneseffektivitet

Förstå skillnaderna mellan struct och union och hur unioner optimerar minnesanvändningen.

Lektion 2 av 310 steg

Unioner och minneseffektivitet är en gratis lektion i C Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 3 lektioner.

Unioner och minneseffektivitet

En union är en särskild datatyp som gör det möjligt att lagra olika datatyper på samma minnesplats.

I den här lektionen lär du dig:

  • Hur du definierar och använder unioner.
  • Skillnaden mellan strukturer och unioner.
  • Hur unioner optimerar minnesanvändningen.
Unioner och minneseffektivitet — illustration 1

Vad är en union?

En union liknar en struktur, men alla medlemmar delar samma minnesutrymme.

Exempel:

union Data { int i; float f; char str[20]; };

Här delar i, f och str samma minnesplats.

Deklarera och använda en union

Unioner deklareras och används på samma sätt som strukturer:

union Data d1;

Tilldela värden:

d1.i = 10;

Endast en medlem kan lagra ett värde åt gången.

Exempel: Använda en union

Det här programmet demonstrerar hur en union lagrar värden på en gemensam minnesplats.

#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;
}

Minnesallokering i unioner

Till skillnad från strukturer bestäms storleken på en union av dess största medlem.

Exempel:

union Data { int i; // 4 bytes float f; // 4 bytes char str[20]; // 20 bytes };

Storleken på den här unionen är 20 byte, inte 28.

Skillnaden mellan struct och union

Struktur:

  • Varje medlem har en separat minnesplats.
  • Storleken är summan av alla medlemmar.

Union:

  • Alla medlemmar delar samma minnesplats.
  • Storleken bestäms av den största medlemmen.

Exempel: Jämföra struct och union

Det här programmet visar minnesstorleken för en struct och en 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;
}

När bör unioner användas?

Unioner är användbara när:

  • Effektiv minnesanvändning är prioriterad.
  • En variabel behöver lagra olika typer vid olika tidpunkter.
  • Du arbetar med maskinvaruregister.

Sammanfattning

I den här lektionen lärde du dig:

  • Hur unioner fungerar och hur de sparar minne.
  • Skillnaden mellan strukturer och unioner.
  • Hur du använder unioner i praktiska situationer.

Nästa steg är att utforska uppräkningar i C!

Unioner och minneseffektivitet — illustration 10
Gratis att börja

Lär dig C med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
39
Lektioner
144

Vanliga frågor

Är lektionen ”Unioner och minneseffektivitet” gratis?

Ja – hela texten till ”Unioner och minneseffektivitet” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Unioner och minneseffektivitet”?

Förstå skillnaderna mellan struct och union och hur unioner optimerar minnesanvändningen. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C Academy?

Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”Unioner och minneseffektivitet”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C Academy-lektionen?

Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera och använda strukturer
  2. Unioner och minneseffektivitet
  3. Uppräkningar (enum)
← Tillbaka till C Academy