Introduktion til statisk nøgleord i C

Statisk nøgleord i C varierer forskelligt på en måde, at det er et nøgleord, der kan bruges såvel med variabler som med funktioner. Derfor er det meget nødvendigt at få en afgrænsning af både for at få de faktiske egenskaber eller opførslen af ​​nøgleordet specifikt med hensyn til C-sprog. Det er lidt vanskeligt at få en fuldstændig forståelse så grundigt for en nybegynder, så vi kører gennem syntaks, faktisk arbejder hvordan det fungerer i C, nogle normer og regler, der skal følges, da det kan være lidt forvirrende at få, hvornår man skal bruge det til omfanget af variablen og hvornår den skal bruges til omfanget af funktionel blok.

Syntaks

1. Syntaks for det statiske søgeord i C, når du definerer en variabel:

static
static
Examples of syntax for static variables:
static int run = 0;
int static sleep = 0;

2. Syntaks for statiske søgeord i C, når du definerer en funktion:

static
static
Examples of syntax for static functions:
static void run ()
(
)
void static sleep ()
(
)

Hvordan fungerer statisk nøgleord i C?

Grundlæggende er der to måder, hvorpå statiske søgeord fungerer i form af C.

  • Det statiske nøgleord i en funktion.
  • Det statiske søgeord uden for en funktion.

1. Statisk nøgleord i en funktion

Erklæring af variablen inden for en funktion er forbundet med kompileringstiden og lagringsvarigheden af ​​variablen i et funktionsopkald. Jeg enkle ord, variabler defineret som statiske udvider deres rækkevidde til flere funktionsopkald, og når den først er erklæret, kan den ikke miste sin rækkevidde før programmets udførelse er afsluttet. Det begynder at definere omfanget på selve kompileringstiden.

Eksempel

# include
int main ()
(
run ();
run ();
run ();
)
void run ()
(
static int running = 0;
++running;
printf ("The function \"run\" was called %d times.\n", running);
)

Produktion:

2. Statisk nøgleord uden for en funktion

Når det statiske nøgleord er erklæret uden for en funktion, begrænser det variabelens rækkevidde og bliver kun synlig for den aktuelle fil, hvilket betyder, at funktionen vil få sit omfang begrænset til selve kildefilen. Adgang til denne statiske variabel eller funktion får begrænsning fra en anden kildefil.

Selvom det betragtes som godt at erklære en funktion som statisk, som hjælper med datakapsling til et specifikt omfang. Mennesker med OOP-baggrund eller java-baggrund kan let forbinde det med det private og det offentlige nøgleord, der fungerer.

Eksempel

For at definere variabler i ekstern funktion, dvs. på det globale niveau, er vi nødt til at definere mindst statiske søgeord.

Definer en statisk variabel i en kildefil og den samme variabel i den anden variabel i en anden kildefil.

Source1.c
static int sleep = 0;
Source2.c
static int sleep= 0;
static void sleep ()
(
static int sleeping = 0;
++ sleeping;
printf (“the function \ “sleep\” was called %d times.\n”, sleeping);
)

Produktion:

Specificering af minimumsstørrelsen på en matrixparameter

Der er en meget vigtig anvendelse, som vi undertiden ignorerer, lad os se på det.

Vi kan fortælle kompilatoren lagringsparameteren for minimumsangivelsen af ​​elementer i en array-pointer til en funktion også. Men denne sag følges meget sjældent (følges indtil C99-compiler).

Eksempel

Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)
Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)

Grundlæggende informerer dette om, at argumentet ikke er ugyldigt.

Regler og forskrifter for det statiske søgeord i C

1. Med hensyn til statisk variabel

  • En statisk variabel forbliver altid i live, når et program kører i modsætning til auto og reserverede nøgleord.
  • Lagring og hukommelsesallokering forekommer i datasegmentet, ikke i stacksegmentet.
  • Hvis variablen ikke er angivet med nogen værdi som standard, definerer den eksplicit af kompilatoren som 0.
  • Erklæring om statiske variabler foretages for det meste ved hjælp af konstante bogstaver.
  • Det overvejes primært, at vi ikke bør definere en statisk variabel i en funktion, det gør for det meste hele funktionsmodulet lidt kompliceret.

2. Med hensyn til statisk funktion

  • Erklæring af variablen betragtes som grundlæggende som global som standard, derfor ved anvendelse af statiske nøgleord med en funktion gør den begrænset inden for rækkevidde ved at begrænse rækkevidden inden for den samme kildefil.
  • Et godt kendetegn ved at gøre funktionen statisk er genanvendelighed, dvs. vi kan kalde den samme funktion flere gange, når det er nødvendigt til udførelse.

Fordele

  • At betragte en variabel som statisk er en fordel i den forstand Det hjælper med at optimere hele kodestrømmen.
  • Genanvendelighed og omdefinering hjælper compileren til at kalde en variabel internt uden at gøre noget andet nøgleord som extern til at dominere.
  • En anden fordel er at øge læsbarheden på en sådan måde, at fremtiden får en anerkendelse af, at filen er erklæret som statisk og ikke er tilgængelig af nogen anden fil eller kildefil.
  • Det forhindrer også, at en masse erklærer c-filen, dvs. redeklarer den som en anden ekstern variabel.

Konklusion

  • Udtrykket "statisk" har sin egen tendens, hvad enten det skal betragtes som fornuftigt eller uden mening. Det forskellige programmeringssprog har forskellige betydninger kun relateret til det statiske nøgleord. Objektorienteret sprog, det opfører sig med en indkapslingsegenskab meget pænt.
  • Med hensyn til C, C # og C ++ har det en anden karakter. Nogle betragter brugen af ​​statisk som bedst på grund af de fordele, det kan prale af, som optimering, genanvendelighed, begrænsning af omfanget. Det meste er anerkendelsen af ​​den endelige læsbare fil.
  • Senere engang, inklusive nogle naive brugere, kan let få at vide, om to kildefiler ikke stemmer overens ved at stemme overens med det interne indhold af de statiske funktioner og den statiske variabel, som det vil ske gennem kompilationsfejlen.
  • Men med hensyn til C betragtes dette ikke som en sikker måde, fordi den interne kommunikation mellem tråde bliver usikker og vanskelig, da den i sidste ende bliver en global variabel. Derfor betragtes det sommetider ikke som så konventionel måde med hensyn til C at bruge statisk nøgleord i C.

Anbefalede artikler

Dette er en guide til statisk nøgleord i C. Her diskuterer vi, hvordan statisk nøgleord fungerer i C med reglerne og forordningerne. Du kan også se på den følgende artikel for at lære mere -

  1. Variabler i C
  2. Udskiftning i C
  3. Matematikfunktioner i C
  4. Omvendt antal i C
  5. Udskiftning af PHP
  6. PHP-nøgleord
  7. Top 5 HTML-attributter med eksempler

Kategori: