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 - Opslagklassen

Een opslagklasse definieert de omvang (zichtbaarheid) en levensduur van variabelen en/of functies binnen een C-programma. Ze gaan vooraf aan het type dat ze wijzigen. We hebben vier verschillende opslagklassen in een C-programma −

  • automatisch
  • registreer
  • statisch
  • extern

De automatische opslagklasse

De automatische opslagklasse is de standaard opslagklasse voor alle lokale variabelen.

{
   int mount;
   auto int month;
}

Het bovenstaande voorbeeld definieert twee variabelen met dezelfde opslagklasse. 'auto' kan alleen worden gebruikt binnen functies, d.w.z. lokale variabelen.

De registeropslagklasse

Het register storage class wordt gebruikt om lokale variabelen te definiëren die in een register moeten worden opgeslagen in plaats van in RAM. Dit betekent dat de variabele een maximale grootte heeft die gelijk is aan de registergrootte (meestal één woord) en dat er geen unaire '&'-operator op kan worden toegepast (omdat deze geen geheugenlocatie heeft).

{
   register int  miles;
}

Het register mag alleen worden gebruikt voor variabelen die snelle toegang vereisen, zoals tellers. Merk ook op dat het definiëren van 'register' niet betekent dat de variabele in een register wordt opgeslagen. Het betekent dat het MOGELIJK in een register wordt opgeslagen, afhankelijk van hardware- en implementatiebeperkingen.

De statische opslagklasse

De statische storage class instrueert de compiler om een ​​lokale variabele in stand te houden gedurende de levensduur van het programma in plaats van deze te creëren en te vernietigen elke keer dat deze binnenkomt en buiten bereik gaat. Door lokale variabelen statisch te maken, kunnen ze daarom hun waarden behouden tussen functieaanroepen.

De statische modifier kan ook worden toegepast op globale variabelen. Wanneer dit wordt gedaan, wordt het bereik van die variabele beperkt tot het bestand waarin het is gedeclareerd.

In C-programmering, wanneer statisch wordt gebruikt op een globale variabele, zorgt het ervoor dat slechts één kopie van dat lid wordt gedeeld door alle objecten van zijn klasse.

Live demo
#include <stdio.h>
 
/* function declaration */
void func(void);
 
static int count = 5; /* global variable */
 
main() {

   while(count--) {
      func();
   }
	
   return 0;
}

/* function definition */
void func( void ) {

   static int i = 5; /* local static variable */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

De externe opslagklasse

De externe storage class wordt gebruikt om een ​​referentie te geven van een globale variabele die zichtbaar is voor ALLE programmabestanden. Wanneer u 'extern' gebruikt, kan de variabele echter niet worden geïnitialiseerd, maar verwijst de variabele naar een eerder gedefinieerde opslaglocatie.

Als je meerdere bestanden hebt en je definieert een globale variabele of functie, die ook in andere bestanden wordt gebruikt, dan extern zal in een ander bestand worden gebruikt om de referentie van een gedefinieerde variabele of functie op te geven. Gewoon voor het begrip, extern wordt gebruikt om een ​​globale variabele of functie in een ander bestand te declareren.

De externe modifier wordt meestal gebruikt als er twee of meer bestanden zijn die dezelfde globale variabelen of functies delen, zoals hieronder wordt uitgelegd.

Eerste bestand:main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main() {
   count = 5;
   write_extern();
}

Tweede bestand:support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void) {
   printf("count is %d\n", count);
}

Hier, extern wordt gebruikt om count . te declareren in het tweede bestand, waar het zijn definitie heeft in het eerste bestand, main.c. Compileer deze twee bestanden nu als volgt −

$gcc main.c support.c

Het zal het uitvoerbare programma a.out . produceren . Wanneer dit programma wordt uitgevoerd, geeft het het volgende resultaat −

count is 5

C Taal

  1. C++ klassen en objecten
  2. C++ vriend Functie en vriend Klassen
  3. C opslagklasse
  4. Structuren en klassen in C++
  5. Python String count() met VOORBEELDEN
  6. Python List count() met VOORBEELDEN
  7. Java - Object en klassen
  8. Opslagklassen in C++
  9. Interfaces in C++ (abstracte klassen)
  10. C# - Klassen
  11. Waarom fluiten tellen ertoe doet