C/Compilatore e precompilatore/Header: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
cambio avanzamento a 75%
Nessun oggetto della modifica
Riga 2: Riga 2:


{{IndexItem|File di header}}
{{IndexItem|File di 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 {{IndexItem|variabili}}variabili utilizzate dai vari moduli come {{IndexItem|extern}}<tt>extern</tt>. 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):
Quando i programmi superano certe dimensioni, può essere conveniente suddividere il sorgente in più files; allo scopo, bisogna definire le {{IndexItem|variabili}}variabili utilizzate dai vari moduli come {{IndexItem|extern}}<tt>extern</tt>. 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):
Riga 8: Riga 11:
// file mio_header.h
// file mio_header.h
extern int miavariabile;
extern int miavariabile;
int mostra(void);
void mostra(void);
</source>
</source>


Riga 15: Riga 18:
#include<stdio.h>
#include<stdio.h>
#include "mio_header.h"
#include "mio_header.h"
int mostra()
void mostra(void)
{
{
printf("\t %d \n" , miavariabile);
printf("\t %d \n" , miavariabile);
}
}
</source>
</source>
Riga 34: Riga 36:
printf("\t Hai inserito:");
printf("\t Hai inserito:");
mostra();
mostra();
return 0;
}
}
</source>
</source>

Versione delle 23:15, 9 gen 2010

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;
  }