C/Compilatore e precompilatore/Header
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;
}