Fonctions statiques dans le langage informatique C

Fonctions statiques dans le langage informatique C
«Statique» est un mot réservé dans le langage informatique, C. Il s'agit d'un spécificateur de classe de stockage qui peut être utilisé avec des fonctions. Un programme C peut avoir plus d'un fichier. Un seul des fichiers doit avoir la fonction c main (). Dans cet article, seuls deux fichiers sont pris en compte: le fichier avec la fonction c Main () qui s'appelle le fichier principal.C et l'autre fichier sans la fonction principale qui est appelée autre fichier.c

Fonction globale

Une fonction globale est une fonction définie dans un fichier C avant la fonction principale (). Même la fonction principale () est une fonction globale mais la fonction principale () n'est pas au centre de cet article. Dans le langage C, les fonctions définies par le programmeur sont généralement des fonctions globales et simplement appelées fonctions.

Une fonction globale peut être appelée dans n'importe quelle portée de son fichier. Pour qu'une fonction globale soit vue dans un fichier différent, son prototype doit être déclaré dans ce fichier différent (voir ci-dessous.) Pour empêcher une fonction définie dans un fichier d'être vu dans un fichier différent, précédez la définition avec le mot réservé, statique. Avec cela, la fonction statique serait une fonction globale uniquement dans son propre fichier et ne sera pas vue dans un autre fichier.

Ainsi, une fonction globale définie dans d'autres fichiers.C peut être vu n'importe où dans d'autres fichiers.c. Pour qu'il soit vu dans le file principale.C, son prototype doit être déclaré en file principale.C (voir ci-dessous.) Sa définition dans d'autres fichiers.C ne doit pas être précédé de «statique». Pour l'empêcher d'être vu en file principale.C, sa définition dans d'autres fichiers.c doit être rendu staticré une virgule en la précédant avec le mot, statique.

Cet article illustre la fonction statique dans le langage informatique, C en commençant par la signification du prototype de fonction et son utilisation dans un programme C de deux fichiers ou plus.

Compilation des fichiers, file principale.C et autre fichier.C, peut être fait avec la commande Bash Terminal suivante:

file principale du CCG.C Autre fichier.C -o temp.exe

temp.EXE est le nom du fichier d'exécution unique résultant.

Contenu de l'article

- Introduction - Voir ci-dessus

- C Prototype de fonction

- Fonction globale

- Fonction statique proprement dite

- Conclusion

C Prototype de fonction

Considérez la définition de la fonction globale:

char * fn1 (char * stri)
retour stri;

Le prototype de cette fonction est:

char * fn1 (char * stri);

C'est la signature de la fonction, se terminant par un point-virgule.

Maintenant, laissez le contenu de l'autre fichier.c be:

char * fn1 (char * stri)
retour stri;

Supposons que le fichier, autre fichier.C n'a que la définition de la fonction globale, fn1 (). Laissez maintenant le contenu du fichier, le fichier principal.C, BE:

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

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

Il commence par l'inclusion de l'en-tête (bibliothèque). Ceci est suivi par la déclaration prototype de la fonction, fn () de l'autre fichier.

Ce fichier principal n'a pas la définition d'une fonction globale autre que la fonction Main () par défaut. Dans la fonction principale, la première instruction appelle la fonction fn1 () définie dans l'autre fichier. Cet appel ne serait pas efficace si le prototype de fn1 () n'était pas déclaré dans ce fichier, le fichier principal.c.

Si le lecteur a codé les deux fichiers ci-dessus, il peut compiler le programme en un seul fichier exécutable avec la commande suivante:

file principale du CCG.C Autre fichier.C -o temp.exe

en appuyant sur la touche Entrée à la fin de la ligne. La sortie doit être, «vue».

Fonction globale

Le file principale.Le fichier C peut être modifié comme suit:

#inclure
char * fn1 (char * stri);
char * fn (char * st)
Retour St;

int main()

char * str1 = fn1 ("vu");
printf ("% s \ n", str1);
char * str2 = fn ("global vu dans son fichier.");
printf ("% s \ n", str2);
retour 0;

Maintenant, il existe deux fonctions globales dans le fichier, le fichier principal.c. Les noms des fonctions sont fn () et main (). dfn () est une fonction globale. Il a été vu dans la portée locale de la fonction principale () par un appel. Dans la langue C, une fonction globale dans la portée globale, comme FN (), est simplement appelée fonction. De plus, la fonction globale, fn1 () dans le fichier, autre file.C est simplement appelé, en fonction.

Si les deux fichiers sont recompilés en température.EXE, alors l'Outout sera:

vu

Global vu dans son fichier.

Remarque: La définition de la fonction pour fn () peut également être faite pour être vue dans l'autre fichier, autre fichier.c. Pour y parvenir, avoir sa déclaration prototype dans d'autres fichiers.C, comme suit:

char * fn (char * st);

se terminant par un point-virgule. Cette activité est laissée comme un exercice pour le lecteur.

Fonction statique proprement dite

Depuis la discussion ci-dessus, une fonction peut être vue dans n'importe quelle portée (n'importe où) dans son fichier. Il peut également être vu dans un fichier différent, pour le même programme, si son prototype y est déclaré. Afin d'éviter que la définition du fichier soit vue dans un fichier différent, rendre la définition statique en la précédant avec le mot réservé, statique. Même si son prototype est déclaré dans le fichier différent, il ne sera toujours pas vu dans le fichier différent. Les fichiers du programme ne compileront même pas. Pour illustrer cela, laissez le contenu du fichier, autre fichier.c be:

Char statique * fn1 (char * stri)
retour stri;

C'est le même contenu dans le fichier, autre fichier.c, comme avant, mais avec le mot réservé précédent, statique. Le contenu du file principale.Fichier C, reste le même. Si une tentative est faite pour compiler les fichiers du programme avec la commande,

file principale du CCG.C Autre fichier.C -o temp.exe

Le compilateur émettrait un message d'erreur, ce qui signifie que le programme ne compilait pas. Même si la déclaration du prototype dans le fichier différent est également précédée de statique, les fichiers du programme ne compileront toujours pas.

Conclusion

Une définition de fonction dans le langage C est une fonction globale. Cette fonction peut être appelée (vue) dans n'importe quelle portée de son fichier. Pour que cette fonction soit vue dans un fichier différent, comme le fichier principal, sa déclaration prototype doit être saisie dans ce fichier différent. Pour éviter que cette fonction ne soit vue dans le fichier différent, rendez sa définition statique en la précédant avec le mot réservé, statique.