C Programmeren

Statisch in C-programmering

Statisch in C-programmering
In deze tutorial zullen we het statische trefwoord uitleggen door het toe te passen in variabelen en functies. Statisch is een sleutelwoord dat wordt gebruikt in C-programmering en kan worden toegepast met behulp van de volgende syntaxis:

statisch gegevenstype variabelenaam

Statische lokale variabelen

Wanneer een variabele in een functie statisch is, behoudt de variabele zijn waarde tussen functieaanroepen.

//Voorbeeld 1.c
#include
int fun1()

aantal int=0;
tellen++;
terugtelling;

int fun2()

statische int telling = 0;
tellen++;
terugtelling;

int hoofd()

printf("fun1 1e oproep geeft als resultaat: %d\n",fun1());
printf("fun1 2e oproep geeft als resultaat: %d\n\n",fun1());
printf("fun2 1e oproep geeft als resultaat: %d\n",fun2());
printf("fun2 2e oproep geeft als resultaat: %d\n",fun2());
retourneer 0;


In voorbeeld 1.c, we hebben twee functies: leuk1() en leuk2(). In leuk1(), we declareren één variabele (aantal) en initialiseren deze op 0. Vervolgens verhogen we de count-variabele en retourneren we de resulterende waarde. Gebruik makend van hoofd(), wij bellen leuk1() twee keer, en elke keer wordt een waarde van 1 geretourneerd omdat de variabele count wordt gewist wanneer de aanroep naar leuk1() is voltooid. In leuk2() we hebben de count-variabele als een statische variabele gedeclareerd. Daarom blijft de waarde behouden. Gebruik makend van hoofd(), wij bellen leuk2() tweemaal: de eerste keer wordt een waarde van 1 geretourneerd en de tweede keer wordt een waarde van 2 geretourneerd.

Statische globale variabelen

Een statische globale variabele gedraagt ​​zich op dezelfde manier als andere globale variabelen, maar is niet toegankelijk vanuit een ander C-programma.

Statische functies

In C zijn functies standaard globaal. Als we echter een statische functie declareren, is de functie lokaal en kan deze niet worden geopend vanuit een ander C-programma.

Initialisatie van statische variabelen

Als een statische variabele niet expliciet is geïnitialiseerd, wordt deze geïnitialiseerd als 0.

//Voorbeeld2.c
#include
int hoofd()

statische int i;
printf("Waarde van i : %d\n",i);
retourneer 0;


In voorbeeld2.c, we hebben een statische variabele i gedeclareerd die niet is geïnitialiseerd. Omdat de variabele echter statisch is, wordt deze automatisch geïnitialiseerd op 0.

Het is belangrijk op te merken dat een statische variabele moet worden geïnitialiseerd door een constante letterlijke; we kunnen de retourwaarde van een functie niet gebruiken om een ​​statische variabele te initialiseren.

//Voorbeeld3.c
#include
int fun1()

retour 5;

int hoofd()

statische int i = fun1();
printf("Waarde van i : %d\n",i);
retourneer 0;


In voorbeeld3.c, we proberen een statische variabele te initialiseren met behulp van de retourwaarde van leuk1(). Zoals u echter kunt zien, wordt er een fout geretourneerd wanneer de code wordt gecompileerd.

Samenvatting

De levensduur van een statische variabele en de levensduur van het programma zijn gelijk.

Als een statische variabele niet is geïnitialiseerd, krijgt deze een standaardwaarde van 0.

Noch een globale statische variabele noch een statische functie is toegankelijk vanuit een ander programma dan het programma waarin het werd gedefinieerd.

Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...
Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...