Funzioni statiche nel linguaggio del computer C

Funzioni statiche nel linguaggio del computer C
"Statico" è una parola riservata nella lingua del computer, c. È un specificatore di classe di archiviazione che può essere utilizzato con le funzioni. Un programma C può avere più di un file. Solo uno dei file dovrebbe avere la funzione C principale (). In questo articolo vengono considerati solo due file: il file con la funzione c main () che si chiama mainfile.C e l'altro file senza la funzione principale che si chiama altro file.C

Funzione globale

Una funzione globale è una funzione definita in un file C prima della funzione principale (). Anche la funzione principale () è una funzione globale ma la funzione principale () non è al centro di questo articolo. Nel linguaggio C, le funzioni definite dal programmatore sono generalmente funzioni globali e semplicemente indicate come funzioni.

Una funzione globale può essere chiamata in qualsiasi ambito nel suo file. Affinché una funzione globale venga visualizzata in un file diverso, il suo prototipo deve essere dichiarato in quel file diverso (vedi sotto.) Per evitare che una funzione definita in un file venga visualizzata in un file diverso, precedere la definizione con la parola riservata, statica. Con ciò, la funzione statica sarebbe una funzione globale solo nel proprio file e non sarà vista in un altro file.

Quindi, una funzione globale definita in altri file.C può essere visto ovunque in altri file.C. Per essere visto in mainfile.C, il suo prototipo deve essere dichiarato in Mainfile.C (vedi sotto.) La sua definizione in altri file.C non dovrebbe essere preceduto da "statico". Per impedire che sia visto in Mainfile.C, la sua definizione in altri file.c deve essere reso static di una virgola precedente con la parola, statico.

Questo articolo illustra la funzione statica nel linguaggio del computer, C che inizia con il significato del prototipo di funzione e il suo utilizzo in un programma C di due o più file.

Compilazione dei file, mainfile.C e altri file.C, può essere fatto con il seguente comando Terminal bash:

GCC Mainfile.c Altro file.c -o temp.exe

temp.EXE è il nome del file di esecuzione singolo risultante.

Contenuto dell'articolo

- Introduzione - Vedi sopra

- Prototipo di funzione c

- Funzione globale

- Funzione statica corretta

- Conclusione

Prototipo di funzione c

Considera la definizione della funzione globale:

char* fn1 (char* stri)
restituire stri;

Il prototipo per questa funzione è:

char* fn1 (char* stri);

È la firma della funzione, che termina in un punto e virgola.

Ora, lascia che il contenuto dell'altro file.c be:

char* fn1 (char* stri)
restituire stri;

Supponiamo che il file, altri file.C ha solo la definizione della funzione globale, fn1 (). Ora lascia che il contenuto del file, mainfile.c, sii:

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

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

Inizia con l'inclusione dell'intestazione (libreria). Questo è seguito dalla dichiarazione prototipo della funzione, fn () dell'altro file.

Questo file principale non ha la definizione di funzione globale diversa dalla funzione principale predefinita (). Nella funzione principale, la prima funzione di chiamate di istruzione fn1 () definita nell'altro file. Questa chiamata non sarebbe efficace se il prototipo di Fn1 () non fosse dichiarato in questo file, Mainfile.C.

Se il lettore ha codificato i due file sopra, può compilare il programma in un file eseguibile con il seguente comando:

GCC Mainfile.c Altro file.c -o temp.exe

premendo il tasto Invio alla fine della linea. L'output dovrebbe essere, "visto".

Funzione globale

Il mainfile.Il file C può essere modificato come segue:

#includere
char* fn1 (char* stri);
char* fn (char* st)
restituire st;

int main ()

char* str1 = fn1 ("visto");
printf ("%s \ n", str1);
char* str2 = fn ("globale visto nel suo file.");
printf ("%s \ n", str2);
restituzione 0;

Ora, ci sono due funzioni globali nel file, Mainfile.C. I nomi delle funzioni sono fn () e main (). dfn () è una funzione globale. È stato visto nella funzione principale () di ambito locale, da una chiamata. Nel linguaggio C, una funzione globale nell'ambito globale, come FN (), viene semplicemente definita una funzione. Inoltre, la funzione globale, fn1 () nel file, altri file.C viene semplicemente indicato, come una funzione.

Se i due file vengono ricambiati nella temperatura.exe, quindi l'outut sarà:

visto

Global visto nel suo file.

Nota: la definizione della funzione per fn () può anche essere vista nell'altro file, altri file.C. Per ottenere che hanno la sua dichiarazione prototipo in altri file.C, come segue:

char* fn (char* st);

terminare con un punto e virgola. Questa attività, viene lasciata come un esercizio per il lettore.

Funzione statica corretta

Dalla discussione di cui sopra, una funzione può essere vista in qualsiasi portata (ovunque) nel suo file. Può anche essere visto in un file diverso, per lo stesso programma, se il suo prototipo viene dichiarato lì. Al fine di impedire che la definizione del file venga visualizzata in un file diverso, rendere statico la definizione precedente con la parola riservata, statico. Anche se il suo prototipo viene dichiarato nel diverso file, non sarà comunque visualizzato nei diversi file. I file del programma non si compileranno nemmeno. Per illustrare questo, lascia che il contenuto del file, altri file.c be:

statico char* fn1 (char* stri)
restituire stri;

Questo è lo stesso contenuto nel file, altri file.C, come prima, ma con la parola riservata precedente, statica. Il contenuto del mainfile.C file, rimane lo stesso. Se viene fatto un tentativo di compilare i file del programma con il comando,

GCC Mainfile.c Altro file.c -o temp.exe

Il compilatore emetterà un messaggio di errore, il che significa che il programma non ha compilato. Anche se la dichiarazione del prototipo nel diverso file, è anche preceduta da statica, i file del programma non compileranno comunque.

Conclusione

Una definizione di funzione nel linguaggio C, è una funzione globale. Questa funzione può essere chiamata (vista) in qualsiasi ambito nel suo file. Affinché questa funzione venga visualizzata in un file diverso, come il file principale, la sua dichiarazione prototipo deve essere digitata in quel file diverso. Per evitare che questa funzione venga vista nei diversi file, basta la sua definizione statica precedentemente con la parola riservata, statico.