C/Compilatore e precompilatore/Header

Indice del libro

Nella tradizione del linguaggio C si fa uso di file di intestazione, ovvero porzioni di codice, in cui, tra le altre cose, si vanno a mettere i prototipi delle funzioni e le dichiarazioni delle variabili globali, a cui tutto il programma deve poter accedere.

Per semplificare questo lavoro di fusione, spesso un file incluso ne include automaticamente altri, da cui il proprio codice può dipendere.

Quando i programmi superano certe dimensioni, può essere conveniente suddividere il sorgente in più files; allo scopo, bisogna definire le variabili utilizzate dai vari moduli come extern. La soluzione migliore si rivela spesso la seguente: si scrive un header file contenente tutte le dichiarazioni per le variabili e le variabili condivise dai vari moduli. Poi, si include l'header in ciascuno dei moduli che ne fanno uso. Segue un esempio (abbastanza banale):

  // file mio_header.h	
  extern int miavariabile;
  void mostra(void);

Segue il file contenente l'implementazione della funzione mostra()

  #include<stdio.h>
  #include "mio_header.h"
  void mostra(void)
  {
    printf("\t %d \n" , miavariabile);  
  }

In maniera tale da poterle utilizzare nella funzione main():

  #include<stdio.h>
  #include "mio_header.h"
  int miavariabile;
  
  int main(void)
  {
      printf("\t Inserisci valore per la variabile: \n \t");
      scanf("%d", &miavariabile);
      printf("\t Hai inserito:");
      mostra();
      
      return 0;
  }