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

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Gian BOT (discussione | contributi)
m sostituzione tag obsoleti
Riga 6: Riga 6:
Per semplificare questo lavoro di fusione, spesso un file incluso ne include automaticamente altri, da cui il proprio codice può dipendere.
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}}<code>extern</code>. 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):


<source lang="c">
<source lang="c">

Versione delle 13:00, 28 lug 2018

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