Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C opslagklasse

C Opslagklasse

In deze zelfstudie leert u over het bereik en de levensduur van lokale en globale variabelen. Ook leer je over statische en registervariabelen.

Elke variabele in C-programmering heeft twee eigenschappen:type en opslagklasse.

Type verwijst naar het gegevenstype van een variabele. En de opslagklasse bepaalt het bereik, de zichtbaarheid en de levensduur van een variabele.

Er zijn 4 soorten opslagklassen:

  1. automatisch
  2. extern
  3. statisch
  4. registreer

Lokale variabele

De variabelen die in een blok worden gedeclareerd, zijn automatische of lokale variabelen. De lokale variabelen bestaan ​​alleen binnen het blok waarin ze zijn gedeclareerd.

Laten we een voorbeeld nemen.

#include <stdio.h>

int main(void) {
  
  for (int i = 0; i < 5; ++i) {
     printf("C programming");
  }
  
 // Error: i is not declared at this point
  printf("%d", i);  
  return 0;
}

Wanneer u het bovenstaande programma uitvoert, krijgt u de foutmelding undeclared identifier i . Het is omdat ik wordt gedeclareerd in de for lus blok. Buiten het blok is het niet aangegeven.

Laten we nog een voorbeeld nemen.


int main() {
    int n1; // n1 is a local variable to main()
}

void func() {
   int n2;  // n2 is a local variable to func()
}

In het bovenstaande voorbeeld, n1 is lokaal voor main() en n2 is lokaal voor func() .

Dit betekent dat je geen toegang hebt tot de n1 variabele binnenin func() omdat het alleen bestaat binnen main() . Evenzo hebt u geen toegang tot de n2 variabele binnen main() omdat het alleen bestaat binnen func() .


Globale variabele

Variabelen die buiten alle functies worden gedeclareerd, worden externe of globale variabelen genoemd. Ze zijn toegankelijk vanuit elke functie in het programma.


Voorbeeld 1:Globale variabele

#include <stdio.h>
void display();

int n = 5;  // global variable

int main()
{
    ++n;     
    display();
    return 0;
}

void display()
{
    ++n;   
    printf("n = %d", n);
}

Uitvoer

n = 7

Stel dat een globale variabele wordt gedeclareerd in file1 . Als je die variabele in een ander bestand probeert te gebruiken file2 , zal de compiler klagen. Om dit probleem op te lossen, zoekwoord extern wordt gebruikt in file2 om aan te geven dat de externe variabele in een ander bestand is gedeclareerd.


Registreervariabele

De register trefwoord wordt gebruikt om registervariabelen te declareren. Registervariabelen zouden sneller moeten zijn dan lokale variabelen.

Moderne compilers zijn echter erg goed in code-optimalisatie en er is een zeldzame kans dat het gebruik van registervariabelen uw programma sneller maakt.

Tenzij u werkt aan embedded systemen waar u weet hoe u code voor de gegeven toepassing kunt optimaliseren, wordt er geen gebruik gemaakt van registervariabelen.


Statische variabele

Een statische variabele wordt gedeclareerd met behulp van de static trefwoord. Bijvoorbeeld;

static int i;

De waarde van een statische variabele blijft bestaan ​​tot het einde van het programma.


Voorbeeld 2:Statische variabele

#include <stdio.h>
void display();

int main()
{
    display();
    display();
}
void display()
{
    static int c = 1;
    c += 5;
    printf("%d  ",c);
}

Uitvoer

6 11

Tijdens de eerste functieaanroep wordt de waarde van c wordt geïnitialiseerd op 1. De waarde wordt met 5 verhoogd. Nu is de waarde van c is 6, die op het scherm wordt afgedrukt.

Tijdens de tweede functie-aanroep, c wordt niet opnieuw op 1 geïnitialiseerd. Het is omdat c is een statische variabele. De waarde c wordt verhoogd met 5. Nu is de waarde 11, die op het scherm wordt afgedrukt.


C Taal

  1. C#-variabelen en (primitieve) gegevenstypen
  2. C# Variabel bereik
  3. C# statisch trefwoord
  4. C++-klassesjablonen
  5. C Variabelen, constanten en literalen
  6. C++ variabelen en typen:int, double, char, string, bool
  7. Java - Variabele Types
  8. C - Variabelen
  9. C - Opslagklassen
  10. C - Scope-regels
  11. C - Aanwijzers