Funcții statice în limbajul C Computer

Functii Statice In Limbajul C Computer



„static” este un cuvânt rezervat în limbajul computerului, C. Este un specificator de clasă de stocare care poate fi folosit cu funcții. Un program C poate avea mai multe fișiere. Doar unul dintre fișiere ar trebui să aibă funcția C main(). În acest articol sunt luate în considerare doar două fișiere: fișierul cu funcția C main() care se numește mainFile.c și celălalt fișier fără funcția principală care se numește otherFile.c

Funcția globală

O funcție globală este o funcție definită într-un fișier C înaintea funcției main(). Chiar și funcția main() este o funcție globală, dar funcția main() nu este punctul central în acest articol. În limbajul C, funcțiile definite de programator sunt de obicei funcții globale și pur și simplu denumite funcții.

O funcție globală poate fi apelată în orice domeniu din fișierul său. Pentru ca o funcție globală să fie văzută într-un fișier diferit, prototipul său trebuie să fie declarat în acel fișier diferit (vezi mai jos.) Pentru a preveni o funcție definită într-un fișier să fie văzută într-un fișier diferit, precedați definiția cu cuvânt rezervat, static. Cu asta, funcția statică ar fi o funcție globală doar în propriul fișier și nu va fi văzută într-un alt fișier.







Deci, o funcție globală definită în otherFile.c poate fi văzută oriunde în otherFile.c. Pentru ca acesta să fie văzut în mainFile.c, prototipul său trebuie să fie declarat în mainFile.c (vezi mai jos.) Definiția sa în otherFile.c nu trebuie precedată de „static”. Pentru a preveni ca acesta să fie văzut în mainFile.c, definiția sa în otherFile.c trebuie făcută static, eliminată o virgulă precedând-o cu cuvântul, static.



Acest articol ilustrează funcția statică în limbajul computerului, C începând cu semnificația prototipului funcției și utilizarea sa într-un program C de două sau mai multe fișiere.



Compilarea fișierelor, mainFile.c și otherFile.c, se poate face cu următoarea comandă a terminalului Bash:





gcc mainFile. c altFișier. c - acea temperatură. executabil

temp.exe este numele fișierului unic de execuție rezultat.

Conținutul articolului



– Introducere – vezi mai sus

– Prototipul funcției C

– Funcția globală

– Funcția statică adecvată

– Concluzie

Prototipul funcției C

Luați în considerare definiția funcției globale:

char * fn1 ( char * stri ) {
întoarcere stri ;
}

Prototipul pentru această funcție este:

char * fn1 ( char * stri ) ;

Este semnătura funcției, care se termină cu punct și virgulă.

Acum, să fie conținutul otherFile.c:

char * fn1 ( char * stri ) {

întoarcere stri ;

}

Să presupunem că fișierul, otherFile.c are doar definiția funcției globale, fn1(). Acum lăsați conținutul fișierului, mainFile.c, să fie:

#include

char * fn1 ( char * stri ) ;

int principal ( )
{
char * str = fn1 ( 'văzut' ) ;
printf ( „%s \n ' , str ) ;

întoarcere 0 ;
}

Începe cu includerea antetului (biblioteca). Aceasta este urmată de declarația prototipului funcției, fn() a celuilalt fișier.

Acest fișier principal nu are definiția niciunei funcții globale, în afară de funcția implicită main(). În funcția principală, prima instrucțiune apelează funcția fn1() definită în celălalt fișier. Acest apel nu ar fi eficient dacă prototipul fn1() nu ar fi declarat în acest fișier, mainFile.c.

Dacă cititorul a codificat cele două fișiere de mai sus, atunci el poate compila programul într-un fișier executabil cu următoarea comandă:

gcc mainFile. c altFișier. c - acea temperatură. executabil

apăsând tasta Enter la sfârșitul liniei. Ieșirea ar trebui să fie „văzută”.

Funcția globală

Fișierul mainFile.c poate fi modificat după cum urmează:

#include

char * fn1 ( char * stri ) ;

char * fn ( char * Sf ) {
întoarcere Sf ;
}

int principal ( )
{
char * str1 = fn1 ( 'văzut' ) ;
printf ( „%s \n ' , str1 ) ;
char * str2 = fn ( „Global văzut în dosarul său”. ) ;
printf ( „%s \n ' , str2 ) ;
întoarcere 0 ;
}

Acum, există două funcții globale în fișier, mainFile.c. Numele funcțiilor sunt fn() și main(). dfn() este o funcție globală. A fost văzut în domeniul local al funcției main(), printr-un apel. În limbajul C, o funcție globală în domeniul global, cum ar fi fn(), este pur și simplu denumită o funcție. De asemenea, funcția globală, fn1() din fișier, otherFile.c este pur și simplu menționată ca o funcție.

Dacă cele două fișiere sunt re-compilate în temp.exe, atunci rezultatul va fi:

văzut

Global văzut în fișierul său.

Notă: definiția funcției pentru fn() poate fi văzută și în celălalt fișier, otherFile.c. Pentru a realiza acest lucru, aveți declarația prototipului în otherFile.c, după cum urmează:

char * fn ( char * Sf ) ;

care se termină cu punct și virgulă. Această activitate, este lăsată ca un exercițiu pentru cititor.

Funcția statică adecvată

Din discuția de mai sus, o funcție poate fi văzută în orice domeniu (oriunde) în fișierul său. Poate fi văzut și într-un fișier diferit, pentru același program, dacă acolo este declarat prototipul său. Pentru a preveni ca definiția fișierului să fie văzută într-un fișier diferit, faceți definiția statică precedând-o cu cuvântul rezervat, static. Chiar dacă prototipul său este declarat în fișierul diferit, tot nu va fi văzut în fișierul diferit. Fișierele programului nici măcar nu se vor compila. Pentru a ilustra acest lucru, să fie conținutul fișierului, otherFile.c:

static char * fn1 ( char * stri ) {

întoarcere stri ;

}

Acesta este același conținut în fișier, otherFile.c, ca și înainte, dar cu cuvântul rezervat anterior, static. Conținutul fișierului mainFile.c rămâne același. Dacă se încearcă compilarea fișierelor de program cu comanda,

gcc mainFile. c altFișier. c - acea temperatură. executabil

compilatorul va emite un mesaj de eroare, ceea ce înseamnă că programul nu a fost compilat. Chiar dacă declarația prototipului din fișierul diferit este precedată și de static, fișierele de program tot nu se vor compila.

Concluzie

O definiție a funcției în limbajul C este o funcție globală. Această funcție poate fi apelată (văzută) în orice domeniu din fișierul său. Pentru ca această funcție să fie văzută într-un fișier diferit, cum ar fi fișierul principal, declarația sa prototip trebuie să fie introdusă în acel fișier diferit. Pentru a preveni ca această funcție să fie văzută în fișierul diferit, faceți definiția sa statică precedând-o cu cuvântul rezervat, static.