Exemple récapitulatif
/* fichier rechPoint.c */
#include"rechPoint.h"
extern FILE* leFichier;             /* leFichier est
globale à tout le programme, statique, pas d'espace réservé */
int rechercher(point pRech)      /* pRech est locale à rechercher, automatique donc espace alloué sur la pile */
{
 static int nbAppel = 0;
            /* nbAppel est locale au bloc, statique donc espace réservé en zone de données */
 int fin;                                   /* fin est locale au bloc, automatique donc espace réservé sur la pile */
 int retour = 0;                         /* retour est locale au bloc,
automatique donc espace réservé sur la pile */
 point p;                                  /* p est locale au bloc, automatique donc espace réservé sur la pile */
 nbAppel++;
 printf("La fonction a été appelée %d fois", nbAppel);
 fin = fscanf(leFichier, "(%d,%d)\n", &p.x,&p.y);
 while (fin != EOF && retour = = 0)
      {            
        if (pRech.x == p.x && pRech.y == p.y)
           retour = 1;
        else       
              fin = fscanf(leFichier,"(%d,%d)\n", &p.x,&p.y);
      }
return (retour);
}

/* fichier principal.c */
#include"rechPoint.h"
FILE* leFichier;                    /* leFichier est globale à tout le programme, statique, espace réservé dans la zone des données */
static point lePoint;                    /* lePoint est globale au fichier principal.c, statique, espace réservé en zone des données*/
void afficher(int r)                 /* r est locale à afficher, automatique, espace alloué sur la pile */
{

 if (r)
   printf("\nLe point (%d,%d) a été trouvé ...", lePoint.x, lePoint.y);
 else
   printf("\nLe point (%d,%d) n a pas été trouvé ...", lePoint.x, lePoint.y);

}
int main(void)
{
 char nomFichier[40];            
/* nomFichier est locale au bloc du main, automatique donc espace alloué sur la pile */
 printf("Donner le nom du fichier");
 gets(nomFichier);
 leFichier = fopen(nomFichier, "rt");
 if (leFichier = = NULL)  printf ("Erreur ...");
 else
   {
    printf("Donner les coordonnées (x,y) du point à rechercher");
    scanf("(%d,%d)", &(lePoint.x), &(lePoint.y));
    afficher(rechercher(lePoint));
    }
fclose(leFichier);   /* ferme le fichier */
}


suivant
                plan