INFOPedia : LSOconst

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione

Dichiarazione di costanti


Una costante è come la variabile un valore allocato in memoria, con la sola differenza che il valore una volta assegnato non può essere modificato.
Per dichiarare una costante esistono due metodi:

Esempio:
Vediamo le differenze nell'uso dei due metodi:

La dichiarazione con const può essere locale, ad esempio all'interno di una funzione dichiarata, in questo caso main():
  #include <stdio.h>
   
  main()
  {
    const i = 10;
    printf("Stampa il contenuto di i: %d\n",i);
  }


oppure globale, la specifica viene fatta all'inizio del programma, vediamone un esempio:
  #include <stdio.h>
  const i = 10;
   
  main()
  {
    printf("Stampa il contenuto di i: %d\n",i);
  }


come possiamo vedere, il tipo della costante in certi casi non è una specifica obbligatoria.


Passiamo ora alla dichiarazione con il preprocessore.
In questo caso la dichiarazione avviene globalmente e non è nel corpo del programma, questo perché in realtà, usando questa tecnica, non si alloca un vero e proprio spazio nella memoria del programma, ma sarà poi il compilatore a sostituire il valore da noi assegnato alla stringa <nome costante> per ogni occorrenza della stringa all'interno del codice da noi scritto.

Qualche dubbio? Niente paura, vediamo un esempio pratico.

Supponiamo di volere dichiarare le costanti GIORNI = 7 e ORE = 24:
  #include <stdio.h>
  #define GIORNI 7
  #define ORE 24
   
  main()
  {
    printf("Stampa il contenuto di GIORNI: %d\ne quello di ORE: %d\n",GIORNI,ORE);
  }


questo sarà esattamente come scrivere:
  #include <stdio.h>
   
  main()
  {
    printf("Stampa il contenuto di GIORNI: %d\ne quello di ORE: %d\n",7,24);
  }


che in poche parole è quello che fa il compilatore, il programma compilato non cambia.

Torna a Laboratorio di Sistemi Operativi

Non ci sono commenti in questa pagina. [Scrivi commento]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
La pagina è stata generata in 0.2161 secondi