Variable globale: cas 2,  le programme est constitué de plusieurs fichiers source et on veut partager des données entre les fichiers.  
/* fichier rechPoint.c */
#include"rechPoint.h"
extern FILE* leFichier;
/* la variable leFichier est externe */
int rechercher(point pRech)

{
 int fin;
 int retour = 0;
 point p;
 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 rechPoint.h */
#include<stdio.h>
typedef struct {
                      int x;
                      int y;
                     } point;

int rechercher(point pRech);
/* fichier principal.c */
#include"rechPoint.h"
FILE* leFichier;   /* Globale à tous les fichiers du programme */
int main(void)
{
 point lePoint;
 int result;
 char nomFichier[40];
 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));
     result = rechercher(lePoint);
     if (result)
        printf("\nLe point a été trouvé ...");
     else
        printf("\nLe point n a pas été trouvé ...");
    }
fclose(leFichier);   /* ferme le fichier */
}


Remarque:
La durée de vie d'une variable globale est la durée de vie du programme. Ce sont des variables statiques: l'espace est réservé en zone des données au chargement du programme.

suivant
              plan