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.EXEtemp.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)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)Anta at filen, andre filmer.C har bare definisjonen av den globale funksjonen, FN1 (). La nå innholdet i filen, mainfile.c, være:
#inkludereDet 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.EXETrykk på Enter -tasten på slutten av linjen. Utgangen skal være, "sett".
Global funksjon
Hovedfilen.C -fil kan endres som følger:
#inkludereNå 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:
settGlobal 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)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.EXEkompilatoren 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.