Statiske funksjoner på C -dataspråket

Statiske funksjoner på C -dataspråket
“Statisk” er et reservert ord på dataspråk, C. Det er en lagringsklassespesifikator som kan brukes med funksjoner. Et C -program kan ha mer enn en fil. Bare en av filene skal ha C Main () -funksjonen. I denne artikkelen er bare to filer vurdert: filen med C Main () -funksjonen som kalles MainFile.C og den andre filen uten hovedfunksjonen som kalles andre File.c

Global funksjon

En global funksjon er en funksjon definert i en C -fil før main () -funksjonen. Selv hovedfunksjonen () er en global funksjon, men hovedfunksjonen () er ikke i fokus i denne artikkelen. På språket C er programmeringsdefinerte funksjoner vanligvis globale funksjoner og ganske enkelt referert til som funksjoner.

En global funksjon kan kalles i ethvert omfang i filen. For at en global funksjon skal sees i en annen fil, må prototypen deklareres i den forskjellige filen (se nedenfor.) For å forhindre at en funksjon definert i en fil blir sett i en annen fil, kan du gå foran definisjonen med det reserverte ordet, statisk. Med det vil den statiske funksjonen bare være en global funksjon i sin egen fil og vil ikke bli sett i en annen fil.

Så en global funksjon definert i andre filmer.c kan sees hvor som helst i andre filmer.c. For at det skal sees i hovedfilen.C, prototypen må deklareres i hovedfilen.C (se nedenfor.) Dens definisjon i andre File.C skal ikke inngås "statisk". For å forhindre at det blir sett i hovedfilen.C, dens definisjon i andre filmer.c må gjøres statisk avvern et komma ved å gå foran det med ordet, statisk.

Denne artikkelen illustrerer statisk funksjon på dataspråket, og begynner med betydningen av funksjonsprototype og dens bruk i et C -program med to eller flere filer.

Samling av filene, hovedfilen.C og andre filmer.C, kan gjøres med følgende bashterminalkommando:

GCC Mainfile.c OtherFile.C -o Temp.EXE

temp.EXE er navnet på den resulterende enkeltutførende filen.

Artikkelinnhold

- INNLEDNING - Se ovenfor

- C funksjonsprototype

- Global funksjon

- Statisk funksjon riktig

- Konklusjon

C funksjonsprototype

Tenk på den globale funksjonsdefinisjonen:

char* fn1 (char* stri)
returner Stri;

Prototypen for denne funksjonen er:

char* fn1 (char* stri);

Det er funksjonssignaturen, som slutter i Semicolon.

La nå innholdet i det andre filen.c være:

char* fn1 (char* stri)
returner Stri;

Anta at filen, andre filmer.C har bare definisjonen av den globale funksjonen, FN1 (). La nå innholdet i filen, mainfile.c, være:

#inkludere
char* fn1 (char* stri);
int main ()

char* str = fn1 ("sett");
printf ("%s \ n", str);
retur 0;

Det begynner med inkludering av overskriften (bibliotek). Dette blir fulgt av prototypedeklarasjonen om funksjonen, fn () av ​​den andre filen.

Denne hovedfilen har ikke definisjonen av noen annen funksjon annet enn standard main () -funksjon. I hovedfunksjonen kaller den første uttalelsen funksjon FN1 () definert i den andre filen. Denne samtalen ville ikke være effektiv hvis prototypen til FN1 () ikke ble erklært i denne filen, Mainfile.c.

Hvis leseren har kodet de to ovennevnte filene, kan han sammenstille programmet til en kjørbar fil med følgende kommando:

GCC Mainfile.c OtherFile.C -o Temp.EXE

Trykk på Enter -tasten på slutten av linjen. Utgangen skal være, "sett".

Global funksjon

Hovedfilen.C -fil kan endres som følger:

#inkludere
char* fn1 (char* stri);
char* fn (char* st)
return st;

int main ()

char* str1 = fn1 ("sett");
printf ("%s \ n", str1);
char* str2 = fn ("global sett i filen.");
printf ("%s \ n", str2);
retur 0;

Nå er det to globale funksjoner i filen, Mainfile.c. Navnene på funksjonene er FN () og Main (). DFN () er en global funksjon. Det har blitt sett i hovedfunksjonen (). I språket C blir en global funksjon i det globale omfanget, for eksempel FN (), ganske enkelt referert til som en funksjon. Også den globale funksjonen, FN1 () i filen, OtherFile.C blir ganske enkelt referert til, som en funksjon.

Hvis de to filene blir kompilert på nytt i Temp.EXE, da vil utledelsen være:

sett

Global sett i filen.

Merk: Funksjonsdefinisjonen for Fn () kan også lages for å bli sett i den andre filen, OtherFile.c. For å oppnå som har sin prototype erklæring i andre filmer.C, som følger:

char* fn (char* st);

slutter med en semikolon. Denne aktiviteten er igjen som en øvelse for leseren.

Statisk funksjon riktig

Fra diskusjonen ovenfor kan en funksjon sees i et hvilket som helst omfang (hvor som helst) i filen. Det kan også sees i en annen fil, for det samme programmet, hvis prototypen er erklært der. For å forhindre at definisjonen av filen blir sett i en annen fil, gjør definisjonen statisk ved å gå foran den med det reserverte ordet, statisk. Selv om prototypen er erklært i den forskjellige filen, vil den fremdeles ikke sees i den forskjellige filen. Programfilene vil ikke engang kompilere. For å illustrere dette, la innholdet i filen, andre fil.c være:

statisk char* fn1 (char* stri)
returner Stri;

Dette er det samme innholdet i filen, OtherFile.C, som før, men med det foregående reserverte ordet, statisk. Innholdet i hovedfilen.C -fil, forblir den samme. Hvis det blir gjort et forsøk på å kompilere programfilene med kommandoen,

GCC Mainfile.c OtherFile.C -o Temp.EXE

kompilatoren ville utstede en feilmelding, noe som betyr at programmet ikke samlet seg. Selv om prototype -erklæringen i den forskjellige filen, også er gitt av statisk, vil programfilene fortsatt ikke sammenstille.

Konklusjon

En funksjonsdefinisjon på C -språket, er en global funksjon. Denne funksjonen kan kalles (sett) i ethvert omfang i filen. For at denne funksjonen skal sees i en annen fil, for eksempel hovedfilen, må prototype -erklæringen skrives i den forskjellige filen. For å forhindre at denne funksjonen blir sett i den forskjellige filen, gjør definisjonen statisk ved å gå foran den med det reserverte ordet, statisk.