I C -programmering bestemmer lagringsklasser
omfanget ,
Lifetime , og
kobling af en variabel eller funktion. De kontrollerer, hvordan kompilatoren administrerer den hukommelse, der er tildelt disse elementer. Lad os nedbryde hver lagerklasse:
1. Automatisk (Auto):
* Omfang: Lokal til den blok, hvor den erklæres.
* levetid: Findes kun under udførelsen af blokken, hvor den er erklæret.
* Kobling: Ingen kobling (ikke tilgængelig uden for funktionen).
* Eksempel:
`` c
int main () {
int x =10; // 'x' er en automatisk variabel
// ...
}
`` `
2. Ekstern (ekstern):
* Omfang: Globalt omfang.
* levetid: Eksisterer gennem hele programmets udførelse.
* Kobling: Ekstern kobling (tilgængelig fra andre filer).
* Eksempel:
`` c
// I File1.C
ekstern int y; // erklærer 'y' som ekstern
// I File2.C
int y =20; // definerer 'y'
`` `
3. Statisk:
* Omfang: Lokalt til blokken, hvor den erklæres.
* levetid: Findes for hele programmets udførelse.
* Kobling: Intern kobling (kun tilgængelig inden for den aktuelle fil).
* Eksempel:
`` c
void myfunc () {
statisk int count =0; // 'Count' bevarer sin værdi mellem funktionsopkald
grev ++;
printf ("tælling:%d \ n", tælling);
}
`` `
4. Tilmeld dig:
* Omfang: Lokalt til blokken, hvor den erklæres.
* levetid: Findes kun under udførelsen af blokken, hvor den er erklæret.
* Kobling: Ingen kobling (ikke tilgængelig uden for funktionen).
* Eksempel:
`` c
void myfunc () {
Registrer Int I; // anmodning om, at kompilatoren skal gemme 'jeg' i et register
for (i =0; i <10; i ++) {
// ...
}
}
`` `
Nøglepunkter:
* Omfang: Bestemmer, hvor der i programmet kan fås en variabel eller funktion.
* levetid: Kontrollerer, hvor længe variablen findes i hukommelsen.
* Kobling: Dikterer, om der kan fås en variabel eller funktion fra andre kildefiler.
Hvorfor er opbevaringskurser vigtige?
Forståelse af lagringsklasser er afgørende for effektiv C -programmering:
* Hukommelsesstyring: De hjælper dig med at kontrollere, hvordan hukommelse tildeles og forhandles.
* Kodeorganisation: De letter modularitet og kode genanvendelighed.
* Performanceoptimering: Du kan bruge 'Register' til potentielt at forbedre ydelsen ved at gemme variabler i registre.
Yderligere oplysninger:
* Opbevaringsklasser defineres ved hjælp af nøgleord i variablen eller funktionserklæringen.
* Nøgleordet 'Auto' udelades ofte, fordi det er standardlagringsklassen for lokale variabler.
* Nøgleordet "Register" er et tip til kompilatoren, og det kan ikke altid blive hædret.
Fortæl mig, hvis du gerne vil udforske en bestemt lagerklasse mere detaljeret eller have flere spørgsmål.